搬自 hzwer 文章目录 一、基本数据结构1. 数组2. 链表、双向链表3. 队列、单调队列、双端队列4. 栈、单调栈5. 前缀和、差分 二、中级数据结构1. 堆2. 并查集、带权并查集3. 哈希、哈希冲突 三、高级数据结构1. 树状数组2. 线段树、线段树合并3. 平衡树3.1 Treap 随机平衡二叉树3.2 Splay 伸展树3.3 替罪羊树3.4 红黑树 4. 块状数组、块状链表5. 树套树5.1 线段树套线段树5.2 线段树套平衡树5.3 平衡树套线段树 6. 可并堆6.1 左偏树6.2 配对堆 7. KDtree、四分树 四、可持久化数据结构1. 可持久化线段树2. 可持久化平衡树3. 可持久化块状数组 五、字符串相关算法及数据结构1. KMP2. AC自动机3. 后缀数组4. 后缀树5. 后缀自动机6. 字典树7. 马拉车 六、图论相关1. 最短路、次短路2. 最小生成树3. 图的连通3.1 连通分量3.2 割点、割边 4. 网络流 24 题5. 树相关5.1 树上倍增5.2 树链剖分5.4 动态树5.5 虚树5.6 prufer 编码 6. 拓扑排序7. 欧拉图9. 二分图9.1 匈牙利算法9.2 KM 算法 10. 差分约束 七、数学相关1. (扩展)欧几里得、卡速米、筛法2. 欧拉函数与降幂大法3. 费马小定理4. 排列组合5. 乘法逆元6. 矩阵乘法7. 数学期望与概率8. 博弈论9. 拉格朗日乘子法10. 中国剩余定理11. 线性规划与网络流12. 单纯型线性规划13. 辛普森积分14. 模线性方程组15. 容斥原理与莫反16. 置换群17. FFT18. 大步小步法(BSGS),扩展 BSGS19. 错位排序20. 卡特兰数 八、动态规划1. 一般动态规划1.1 线性、二维、高维 DP1.2 记忆化搜索1.3 斯坦纳树1.4 背包九讲1.5 树形 DP1.6 区间 DP1.7 数位 DP1.8 期望 DP1.9 状态压缩 DP 2. DP 的优化2.1 单调队列、优先队列、堆优化DP2.2 斜率优化与四边形不等式优化 3. 环 + 外向树4. 插头动规 九、计算几何1. 计算几何基础2. 三维计算几何初步3. 梯形剖分与三角形剖分4. 旋转卡壳5. 半平面相交6. pick 定理7. 扫描线 十、搜索1. DFS、BFS2. A*3. 迭代加深、双向搜索 十一、特殊算法1. 莫队、树上莫队2. 模拟退火3. 爬山算法4. 随机增量法5. 珂朵莉树 十二、其他重要工具与方法1. 排序2. 模拟与贪心3. 二分、三分4. 分治,CDQ 分治5. 高精度5. 离线6. ST 表 十三、STL1. map2. priority_queue3. set4. bitset5. rope 十四、非常见算法1. 朱刘算法2. 弦图与区间图 一、基本数据结构 1. 数组 2. 链表、双向链表 链表、双向链表 3. 队列、单调队列、双端队列 队列、单调队列、双端队列 4. 栈、单调栈 栈、单调栈 5. 前缀和、差分 差分 二、中级数据结构 1. 堆 堆 2. 并查集、带权并查集 并查集、带权并查集 3. 哈希、哈希冲突 哈希、哈希冲突 三、高级数据结构 1. 树状数组 树状数组 2. 线段树、线段树合并 线段树、线段树合并 3. 平衡树 3.1 Treap 随机平衡二叉树 Treap 3.2 Splay 伸展树 Splay 伸展树 3.3 替罪羊树 3.4 红黑树 4. 块状数组、块状链表 5. 树套树 5.1 线段树套线段树 5.2 线段树套平衡树 5.3 平衡树套线段树 6. 可并堆 6.1 左偏树 6.2 配对堆 7. KDtree、四分树 四、可持久化数据结构 1. 可持久化线段树 2. 可持久化平衡树 3. 可持久化块状数组 五、字符串相关算法及数据结构 1. KMP 2. AC自动机 3. 后缀数组 4. 后缀树 5. 后缀自动机 6. 字典树 字典树 7. 马拉车 Manacher 六、图论相关 1. 最短路、次短路 最短路、次短路 2. 最小生成树 最小生成树 3. 图的连通 3.1 连通分量 连通分量 3.2 割点、割边 割点、割边 4. 网络流 24 题 网络流 24 题 5. 树相关 5.1 树上倍增 树上倍增 5.2 树链剖分 树链剖分 5.4 动态树 5.5 虚树 5.6 prufer 编码 6. 拓扑排序 拓扑排序 7. 欧拉图 欧拉图 9. 二分图 9.1 匈牙利算法 匈牙利算法 9.2 KM 算法 KM 算法 10. 差分约束 差分约束 七、数学相关 1. (扩展)欧几里得、卡速米、筛法 扩展欧几里得 卡速米 筛法 2. 欧拉函数与降幂大法 欧拉函数 3. 费马小定理 4. 排列组合 排列组合 5. 乘法逆元 逆元 6. 矩阵乘法 矩阵乘法 7. 数学期望与概率 期望 8. 博弈论 博弈论 9. 拉格朗日乘子法 10. 中国剩余定理 中国剩余定理 11. 线性规划与网络流 12. 单纯型线性规划 13. 辛普森积分 14. 模线性方程组 15. 容斥原理与莫反 容斥 16. 置换群 17. FFT 18. 大步小步法(BSGS),扩展 BSGS 19. 错位排序 错位排序 20. 卡特兰数 卡特兰数 八、动态规划 1. 一般动态规划 1.1 线性、二维、高维 DP 一维 DP 二维 DP 高维 DP 1.2 记忆化搜索 记忆化搜索 1.3 斯坦纳树 1.4 背包九讲 背包 DP 1.5 树形 DP 树形 DP 1.6 区间 DP 区间 DP 1.7 数位 DP 数位 DP 1.8 期望 DP 期望 DP 1.9 状态压缩 DP 状压 DP 2. DP 的优化 2.1 单调队列、优先队列、堆优化DP 单调队列、优先队列、堆优化DP 2.2 斜率优化与四边形不等式优化 3. 环 + 外向树 4. 插头动规 九、计算几何 1. 计算几何基础 计算几何 2. 三维计算几何初步 3. 梯形剖分与三角形剖分 4. 旋转卡壳 5. 半平面相交 6. pick 定理 7. 扫描线 十、搜索 1. DFS、BFS 2. A* 3. 迭代加深、双向搜索 迭代加深搜索 十一、特殊算法 1. 莫队、树上莫队 莫队 2. 模拟退火 模拟退火 3. 爬山算法 4. 随机增量法 5. 珂朵莉树 珂朵莉树 十二、其他重要工具与方法 1. 排序 排序 2. 模拟与贪心 3. 二分、三分 二分 4. 分治,CDQ 分治 5. 高精度 高精度 5. 离线 6. ST 表 ST 表 十三、STL 1. map map 2. priority_queue 3. set 4. bitset bitset 5. rope 十四、非常见算法 1. 朱刘算法 2. 弦图与区间图