黑字:认识
红字:要学
未添加:要学
├─模拟
├─字符串
│ ├─字符串基础
│ ├─kmp
│ ├─trie
│ ├─ac自动机
│ ├─后缀数组
│ └─后缀树
├─搜索
│ ├─深度搜索(dfs)
│ ├─记忆化搜索
│ ├─广度搜索(bfs)
│ ├─双向广搜
│ ├─回溯
│ ├─A*
│ ├─迭代深搜
│ ├─IDA*
│ └─dfs序
├─动态规划
│ ├─区间dp
│ ├─环形dp
│ ├─背包dp
│ ├─树形dp
│ ├─状压dp
│ ├─数位dp
│ └─优化
│ ├─斜率优化
│ └─二进制优化
├─数论
│ ├─筛法
│ ├─快速幂
│ ├─欧几里得算法
│ ├─拓展欧几里得算法
│ ├─排列组合
│ ├─概率与期望
│ ├─置换群
│ ├─抽屉原理
│ ├─容斥原理
│ ├─矩阵乘法
│ ├─乘法逆元
│ ├─高斯消元
│ ├─欧拉函数
│ ├─中国剩余定理
│ ├─快速傅里叶变换
│ └─其它
├─图论
│ ├─拓扑排序
│ ├─生成树
│ │ ├─kruskal
│ │ └─prim
│ ├─最短路
│ │ ├─spfa
│ │ ├─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树
│ ├─树套树
│ ├─可持久化
│ │ └─可持久化线段树
│ ├─左偏树
│ ├─仙人掌树
│ ├─喜羊羊树
│ ├─朝鲜树
├─计算几何
│ ├─基础
│ └─凸包
├─博弈论
└─其它
├─暴力
├─贪心
├─高精度
├─二分
├─排序
├─特殊算法
│ ├─爬山算法
│ ├─模拟退火
│ ├─朱刘算法
│ ├─莫队算法
│ └─随机增量法
├─随机化
├─RMQ
│ └─st
├─cdq分治
└─凸壳