数据结构:
- 栈、堆、队列、链表
- 散列,开散列、闭散列
- 集合、位集合
- 优先队列
- 并查集、带权的并查集
- 映射二叉堆
- 树堆 Treap
基本算法:
- 贪心算法
- 分治算法
- 二分求等比数列之和
- LCA与RMQ问题
- 大数
- DFS和BFS
- A* 和IDA*
- 直接插入排序、折半插入排序、希尔排序
- 冒泡排序、快速排序
- 选择排序、堆排序
- 二路归并排序
- 桶排序
区间查询算法:
- 线段树
- 莫队、树上莫队
- 树链剖分
- 主席树
- 树状数组
串:
- KMP、扩展KMP
- manacher回文字符串
- Trie Tree
- AC自动机
- 后缀数组
动态规划:
- 记忆搜索
- 递推
- DP、树形DP、子集DP、插头DP
- 背包九讲
数学:
博弈:
- Nim博弈
- 巴什博奕
- SG函数
组合数学:
- 排列组合
- 容斥原理
- Catalan数
- Lucas定理
- 康托展开
- 斐波那契数列
- 莫比乌斯反演
数论:
- 普通筛法、欧拉筛法、米勒测试法
- 中国剩余定理
- 欧拉函数
- 欧几里得定理、扩展欧几里得
- GCD
- 矩阵、矩阵快速幂
- 高斯消元
- 进制位
- 因式分解
计算几何:
- 基本公式:叉乘、点乘、面积周长体积、坐标离散化、忽略误差
- 两线段焦点
- 凸包
- Pick定理
图论:
不带权图:
- DFS、BFS
- 拓扑排序
- 欧拉回路、哈密顿回路
- Tarjan算法
带权图:
- Kruskal最小生成树
- Prim最小生成树
- Dijkstra最短路算法
- floyd 多源最短路
- SPFA 单源最短路
- 差分约束系统
匹配:
- 二分图
- 匈牙利算法
- KM算法
流
- 最大费用流Dinic算法
- 最小费用最大流
- Ford-Fulkerson算法
- Stoer-Wagner算法
- 含负费用的最小费用最大流