- はじめに
- 1. グラフ問題
- 1.1. 単一始点(終点)最短路(Dijkstra法)
- 1.2. 単一始点最短パス(BFS)
- 1.3. 単一始点最短路(Bellman Ford法)
- 1.4. 単一始点最短路(SPFA)
- 1.5. 全点対最短路(Warshall Floyd法)
- 1.6. 全点対最短路(Johnson法)
- 1.7. 単一始点最長路
- 1.8. 最小全域木(Kruskal法)
- 1.9. 連結性
- 1.9.1. DFS
- 1.9.2. Union Find
- 1.9.3. Low Link
- 1.9.4. Dynamic Connectivity Algorithm
- 1.10. 木
- 1.10.1. DFS
- 1.10.2. 直径
- 1.10.3. Euler Tour
- 1.10.4. Euler Tour Tree
- 1.10.5. HL分解
- 1.10.6. Link Cut Tree
- 1.11. 巡回セールスマン問題
- 2. 区間問題
- 2.1. imos法
- 2.2. セグメント木
- 2.3. Binary Indexed Tree(フェニック木)
- 2.4. 平衡2分探索木
- 2.4.1. splay木
- 2.5. RangeBST
- 2.6. 2次元imos法
- 2.7. Mo's algorithm
- 2.8. ウェーブレット行列
- 2.9. 区間スケジューリング問題
- 2.9.1. 重複あり区間スケジューリング問題
- 2.9.2. 重み付き区間スケジューリング問題
- 3. DP
- 3.1. 桁DP
- 3.2. 確率DP
- 3.3. 期待値DP
- 3.4. bitDP
- 3.5. 区間DP
- 3.6. 耳DP
- 3.7. オートマトンDP
- 3.8. LCS
- 3.9. LIS
- 4. フロー
- 4.1. 最大フロー問題
- 4.2. 2部グラフの最大マッチング
- 4.3. 最小費用流問題
- 5. ゲーム系問題
- 5.1. 後退解析
- 5.2. Nim
- 5.3. Grundy数
- 6. 群論
- 7. 分割統治法
- 8. 2分探索