├─ 语言
├─ 模拟
├─字符串
│ ├─字符串基础
│ ├─ manacher
│ ├─ kmp
│ ├─ trie
│ ├─ ac自动机
│ ├─ 后缀数组(sa)
│ ├─ 后缀自动机(sam)
│ └─ 后缀树
├─搜索
│ ├─深度搜索(dfs)
│ ├─记忆化搜索
│ ├─ 广度搜索(bfs)
│ ├─双向广搜
│ ├─回溯
│ ├─ A*
│ ├─ 迭代深搜
│ ├─ IDA*
│ └─dfs序
├─ 动态规划
│ ├─区间dp
│ ├─环形dp
│ ├─背包dp
│ ├─树形dp
│ ├─状压dp
│ ├─数位dp
│ ├─插头dp
│ └─优化
│ ├─ 四边形不等式
│ ├─斜率优化
│ └─二进制优化
├─数论
│ ├─筛法
│ ├─快速幂
│ ├─欧几里得算法
│ ├─ 拓展欧几里得算法
│ ├─ 费马小定理(欧拉定理)
│ ├─排列组合
│ ├─康托展开
│ ├─概率与期望
│ ├─置换群
│ │ ├─Burnside 引理
│ │ └─Pólya 计数
│ ├─抽屉原理(加强版)
│ ├─容斥原理
│ ├─ 矩阵乘法
│ ├─ 乘法逆元
│ ├─ 高斯消元
│ ├─ 欧拉函数
│ ├─ 中国剩余定理
│ ├─ 单纯型法
│ ├─ 莫比乌斯函数及莫比乌斯反演
│ └─ 快速傅里叶变换
├─图论
│ ├─ 拓扑排序
│ ├─ 生成树
│ │ ├─k小生成树
│ │ ├─kruskal
│ │ └─prim
│ ├─ 最短路
│ │ ├─ k短路
│ │ │ └─ 偏离算法
│ │ ├─spfa(Bellman-Ford)
│ │ ├─dijkstra
│ │ └─floyd
│ ├─ 差分约束
│ ├─ 并查集
│ ├─ 图的连通
│ │ ├─tarjan
│ │ ├─双连通分量
│ │ ├─强连通分量
│ │ └─割点割边
│ ├─ 网络流
│ │ ├─最大流
│ │ │ ├─sap
│ │ │ │ ├─isap
│ │ │ │ └─dinic
│ │ │ └─ 预流推进
│ │ ├─最小割
│ │ ├─费用流
│ │ │ └─ zkw费用流
│ │ └─上下界网络流
│ │ └─二分
│ ├─ 二分图
│ │ ├─匈牙利
│ │ └─km算法
│ ├─ 2-SAT
│ └─树
│ ├─ lca
│ │ ├─tarjan
│ │ └─倍增
│ └─ 树链剖分(hld)
│ ├─点分治
│ └─边分治
├─数据结构
│ ├─基础数据结构
│ │ ├─栈(stack)
│ │ ├─链表(list)
│ │ ├─ 哈希表(hash)
│ │ └─堆(heap)
│ ├─ 单调栈
│ ├─ 单调队列
│ ├─ 块状链表
│ ├─ 线段树(seg tree)
│ │ ├─ 主席树
│ │ └─ zkw线段树
│ ├─ 树状数组(bit)
│ ├─ 平衡树
│ │ ├─treap
│ │ ├─splay
│ │ ├─ sbt
│ │ ├─ 红黑树
│ │ └─ AVL树
│ ├─ link-cut tree
│ ├─树套树
│ ├─划分树
│ ├─可持久化
│ │ └─可持久化线段树
│ ├─ kdtree
│ ├─ 左偏树
│ ├─ 仙人掌树
│ └─ 朝鲜树(替罪羊树)
├─计算几何
│ ├─基础
│ ├─半平面交
│ └─凸包
│ └─旋转卡壳
├─博弈论
│ └─ SG函数
└─其它
├─ 暴力
├─ 贪心
├─ 高精度
├─二分
├─ 整体二分
├─排序
├─ stl
│ ├─set
│ ├─map
│ ├─rope
│ └─priority_queue
├─特殊算法
│ ├─ 爬山算法
│ ├─ 模拟退火
│ ├─ 朱刘算法
│ ├─ 莫队算法
│ └─ 随机增量法
├─ 随机化
├─RMQ
│ └─st
└─ cdq分治
大纲: