目录
- 数据结构
- STL以及基础数据结构
- 并查集
- 线段树
- 树状数组
- 平衡树
- 树套树
- 可并堆
- \sqrt{}根号数据结构
- LCT
- 字符串
- 字符串匹配
- 字符串其他
- 数学
- 数论
- 线性代数
- 组合数学
- 网络流
- 最大流
- 最小割
- 费用流
- 图
- 搜索
- 最短路
- 负环
- 最短路建图
- 最小生成树
- 连通性相关
- 欧拉路径
- 二分图
- 树上问题
- 其他
- 离线分治算法
- 随机化
数据结构
STL以及基础数据结构
- STL用法合集
- 单双链表
- 单调栈
- 单调队列
并查集
- 基础并查集
- 边带权并查集
- 扩展域并查集
- 可持久化并查集
- Krusual重构树
线段树
- 基础线段树
- 扫描线
- 李超线段树
- 吉老师线段树
- 可持久化线段树(主席树)
树状数组
- 一维树状数组
- 二维树状数组
平衡树
- FhqTreap
- Splay
树套树
- 线段树套线段树
- 树状数组套线段树(带修改主席树)
- 线段树套平衡树
可并堆
- 左偏树
- 线段树合并
\sqrt{}根号数据结构
- 分块
- 块状数组
- 块状链表
LCT
字符串
字符串匹配
- KMP算法、fail树
- Trie树
- AC自动机
- 序列自动机
- 字符串哈希
字符串其他
- 后缀数组
- 后缀自动机
- 广义后缀自动机
- 最小表示法
- Manacher算法
数学
数论
- 素数
- 约数
- 裴蜀定理
- 乘法逆元
- 线性同余方程
线性代数
- 高斯消元
- 线性基
组合数学
- 排列组合
- 容斥原理
- 康托展开
- 卡特兰数
网络流
最大流
- EK求最大流、dinic求最大流
- 最大流之二分匹配
- 最大流之上下界可行流
最小割
- 最大权闭合图
- 最大密度子图
- 最小点权覆盖集
- 最大点权独立集
费用流
- EK算法求费用流
- 二分图最优匹配
- 最大权不相交路径
图
搜索
- dfs、bfs
- 双向bfs
- A*
- 迭代加深
最短路
- dijkstra求最短路
- spfa求最短路
- floyd求最短路
负环
- spfa判断负环
- 01分数规划
- 差分约束
最短路建图
- 分层图
- 线段树优化建图
- 神奇的建图方式
最小生成树
- prim最小生成树
- kruskal算法
- (非)严格次小生成树
- 瓶颈生成树
- 最小瓶径路
连通性相关
- 有向图的强连通分量
- 无向图的(点、边)双连通分量
- 割点和桥
- 2-SAT问题
欧拉路径
- 欧拉路径
- 欧拉回路
二分图
- 最大匹配匈牙利算法
- 完美匹配
- 多重匹配KM算法
- 二分图相关结论
树上问题
- dfs序
- 树上差分
- 树链剖分(重链,长链)
- 树的直径
- 树的重心
- 最近公共祖先
- 点分治
- Dsu on Tree
其他
- 高精度
离线分治算法
- CDQ分治
- 整体二分
- 莫队算法
随机化
- 模拟退火
- 爬山算法