경쟁 프로그램 재구성
C ++의 알고리즘 및 데이터 구조 수집은 경쟁 프로그래밍 콘테스트에 널리 사용됩니다.
다음 주제는 다음과 같습니다.
범위 업데이트 및 쿼리
- 범위 집계 쿼리 :
- 이진 인덱스 트리 (비트) :
- 포인트 업데이트 범위 쿼리
- 범위 업데이트 범위 쿼리
- 통계 쿼리를 주문하십시오
- 2D 바이너리 인덱스 트리
- 세그먼트 트리 (Segtree) :
- 포인트 업데이트 범위 쿼리
- 빠른 반복적 인 세그레
- 범위 업데이트 포인트 쿼리 - 게으른 추적
- 범위의 최대 하위 세그먼트 합계
- 2D 세그먼트 트리
- 동적 세그먼트 트리 - 요소 사이의 삽입/삭제
- 동적 세그먼트 트리 - 세그먼트를 역전시킵니다
- 정렬 나무 병합 :
- 정렬 나무를 병합하십시오
- 정렬 나무 병합 - 주문 통계
- 스파 스 테이블 :
- MO 알고리즘 :
- 동적 프로그래밍 :
- 동적 프로그래밍 템플릿 :
- 표준 DP 문제 :
- 가장 오래 증가하는 후속
- 가장 긴 팔린 드로믹 후속
- Levenstein 거리 / 편집 거리
- 그래프 :
- 단일 소스 짧은 경로 알고리즘 :
- 조밀 한 그래프의 dijkstra
- 우선 순위 대기열을 사용하는 dijkstra
- dijkstra를 사용하여 노드 사이의 Kth 최단 경로
- Bellman Ford 음성 사이클 감지
- 모든 쌍이 가장 짧은 경로 :
- 사이클 감지 :
- 최소 스패닝 트리 :
- 토폴로지 정렬 / 강하게 연결된 구성 요소 :
- maxflow/matching :
- Hopkroft Karp Max 매칭
- Dinic Max 흐름
- 기타 :
- 나무 :
- 조상 쿼리 :
- 경로 쿼리 :
- 희소 테이블 *
- 무거운 빛 분해 가중 노드
- 무거운 빛 분해 가중치
- 기타 :
- 나무의 직경
- 선주문/우편 주문형 스탬프, 하위 트리에 있습니까?
- 이진 지수화 :
- 이진 지수를 사용하여 n^m을 계산합니다
- 선형 재발 해결
- 문자열 :
- 문자열 알고리즘 :
- z 알고리즘
- KMP 알고리즘
- 롤링 스트링 해싱
- 동적 문자열에 대한 롤링 스트링 해싱
- 문자열 데이터 구조 :
- 정렬 :
- 빠른 입력/출력, 문자열/정수 변환 :
- 기타. 데이터 구조 :
- 분리 세트
- Disjoint Set (지원 취소 조작 지원)
- 최대/최소 우선 순위 큐 업데이트
- XOR 최대화/최소화를위한 이진 트리
- 큰 *
- 주문 통계 및 순위 쿼리를위한 보강 된 이진 트리
- 모노톤 우선 순위 대기열
- 트리
- 지속적인 데이터 구조 :
- 지속적인 세그먼트 트리 (Segtree) :
- 지속적인 세그먼트 트리
- 지속적인 세그먼트 트리 - 주문 통계
- 숫자 이론 알고리즘 :
- 원시 점검 :
- 체 :
- Eratosthenes의 체
- 큰 프라임에 대한 세그먼트 된 체
- 주요 요인 계산
- 다항식 곱셈 :
- 기타 :
- 조합 및 카탈로니아어 - Factorial Preprocessing
- Mobeius 기능
- Euler totient 기능
- Lucas Theorminatorics
- 계산 형상 :
- 기타 :
- x = 1 : n을 가진 바닥 (x)의 합
- 순환 기능의 합 *
- 모든 요소 전후에 가장 큰 요소
- 긴 정수를 곱하십시오
- 긴 정수를 곱하십시오 - 오버플로 감지
- 스캔 라인 - 교차 간격을 병합합니다