추가 정리가 필요한 리스트
그래프
- DFS Iterative, Recursive
- BFS Iterative, Recursive
- Topological Sort
- Detect Cycle (Backedge, Indegree)
- SCC
- Union-Find, MST
- 오일러 회로, 경로
정렬
- Merge-sort
헤싱
- Hash Table
문자열
- KMP
- Manacher
쿼리 자료구조
- SQRT Decomposition (평방 분할)
Pow(b,e), Fact(n), Comb(n,r)
페르마의 소정리, 분할정복 사용.
1 |
|
Trie
1 |
|
Quick Select
1 |
|
Quick Sort
Partiton은 Quick Select와 공유
1 |
|
radix sort
음수는 UB를 더해서 양수로 만들어 넣어야 한다. C의 짝/홀에 따라서 결과가 기록되는 Array가 다르다.
1 |
|
Binary Search
f에는 적절한 함수를 넣는다.
- ub를 v.size()를 하는 이유는 전부 false를 인 경우를 위해
- lb가 m+1인 이유는 /2 연산이 항상 버림이기 때문
1 |
|
Segment Tree
segment Tree는 RMQ(Ranged Minimum Query)를 구하는데 좋다. 다만 Ranged Update에는 불리해 보인다.
1 |
|
Fenwick Tree
펜윅 트리는 두가지 경우에 사용한다.
- sum[0:N] 이 필요할 때, diff 쿼리가 가능할 경우
- max[0:N] 이 필요할 때, query가 오름차순으로 들어오는 경우
1 |
|