这是本文档旧的修订版!
## 一、基础算法
### 1. 模拟
### 2. 递归与搜索
- 深度优先搜索
- 广度优先搜索
- 启发式搜索
- 迭代加深搜索
- Min-Max搜索
- Alpha-beta剪枝
- 记忆化搜索
- Meet_In_the_middle
### 3. 排序算法
- 插入排序
- 归并排序
- 快速排序
- 桶排序
- 用数据结构排序
### 4. 贪心算法(fyh hxm wxg)
- Huffman编码及Huffman树
- K叉Huffman树
- 区间覆盖问题及拓展
- 思维性贪心
- 拟阵
### 5. 差分思想
—
## 二、图论
### 1. 图的存储
- 邻接表(链式前向星)
- 邻接矩阵
### 2. 图的路径问题(fyh hxm)
3. 区间DP (fyh wxg)
4. 数位DP (fyh wxg)
5. Tree DP(wxg fyh)
6. 概率期望DP(hxm)
7. 递推DP
8. 动态规划优化(fyh wxg)
决策单调性优化
数据结构优化
线段树优化DP
单调队列优化DP
四边形不等式优化DP
四、字符串
1. 哈希(hxm)
2. Trie树
3. KMP算法与AC自动机(hxm wxg)
4. 后缀树、后缀数据与后缀自动机(hxm wxg)
5. Manacher算法、回文树算法与回文自动机(hxm wxg fyh)
五、数据结构
1. 栈
2. 队列
3. 堆和优先队列
4. 树状数组
5. 线段树
6. 左偏树
7. 平衡树(wxg)
8. 动态树(Link-Cut Tree)(wxg)
9. 链表
10. 分块与莫队(hxm fyh)
11. 可持久化数据结构(wxg)
主席树
带修主席树
可持久化数组
可持久化并查集
可持久化Trie
可持久化Treap
12. 树套树
13. KD-Tree(wxg)
六、数学
1. 整除与剩余(fyh hxm)
Euclid算法
扩展Euclid算法
类Euclid算法
中国剩余定理及拓展
Lucas定理及拓展
原根
二次剩余
离散对数
N次剩余
佩尔方程(hxm)
2. 素数与函数(fyh wxg)
素数判定
素数筛法
欧拉函数
线性筛
反演与Mobius反演
杜教筛
Min25筛
3. 线性代数(fyh hxm)
矩阵
高斯消元
矩阵的逆
矩阵快速幂
行列式
Matrix-Tree
常系数多项式齐次问题
线性基
BM算法
拉格朗日数乘法
KKT条件
4. 多项式算法(hxm wxg)
5. 数值计算
6. 概率与期望(hxm)
7. 组合数学与容斥原理
8. 其他数学内容
快速幂
Catalan 数
Fermat定理
第一类与第二类Stirling 数(hxm)
9. 生成函数(hxm wxg)
10. 置换群论(fyh)
七、分治算法(wxg)
1. 二分算法
2. 三分算法
3. 第K大数
4. 偏序问题(CDQ分治)
5. 点分治(fyh)
八、计算几何(fyh,hxm)
1. 线段相交问题
2. 凸多边形面积
3. 最小圆覆盖
4. 扫描线
5. 凸包问题
6. 最近点对问题
7. 圆的交与并
8. 半平面交
9. Simpson积分
10. KD-Tree
11. V图
九、博弈论问题(wxg)
1. 基于动态规划的博弈论问题
2. Nim博弈问题
3. Wythoff博弈问题
4. Surreal Number博弈
十、其他算法
1. 朱-刘算法
2. 无向图最小割
3. 高精度
4. 模拟退火
5. 随机化算法
6. 倍增算法
7. bitset压位