-
Trie树
-
KMP算法
-
Aho-Corasick自动机
-
Manacher算法——最长回文子串
-
Palindromic Tree——回文树
-
后缀数组
-
后缀自动机
-
字符串哈希
-
最小表示法
-
Eratosthenes筛法
-
Euler筛法(积性函数常用)
-
质因数分解
-
(扩展)欧几里得算法——模意义下的二元一次方程
-
费马小定理(欧拉定理)
-
线性递推数论拟元
-
**剩余定理
-
Miller-Rabin算法(随机大素数测试)
-
Pollard-Rho算法(随机大整数质因式分解)
-
Baby-Step-Giant-Step算法——求离散对数
-
莫比乌斯反演
-
矩阵乘法
-
求组合数
- DP
- 线性递推(数论意义下)
- Lucas定理
-
容斥原理
-
Burnside引理——等价类计数
-
基本原理
-
Sprague-Grudy定理——公平组合博弈(Impartial Combinatori Games)
-
Nim!博弈
-
Bash博弈
-
Wythoff博弈
-
Zeckendorf定理——Fibonacci博弈
-
高斯消元
-
二分与三分法
-
Lagrange乘数法
-
牛顿迭代
-
Simpson积分
参考pyx的多项式导论
-
多项式乘法
- Fast Fourier Transform
- Number Theory Transform
-
Fast Walsh-Hadamard Transform——基于位运算的卷积
-
多项式除法
-
树状数组 (Fenwick Tree)
-
堆(可以添加动态修改的功能)
-
线段树
- 单值维护
- 单值维护+多种区间修改
- 多值维护
- 可持久化
- 动态开点
-
DFS序列
-
伸展树 (Splay Tree)
-
树堆 (Treap)
-
树链剖分
-
动态树(Link-Cut Tree)
-
最短路
- Dijkstra 算法
- spfa 算法 (Bellman-Ford算法的队列优化)
- Floyd 算法
- 差分约束
-
最大公共祖先
- Tarjan LCA算法(线性的离线算法)
- 倍增LCA
- DFS序列+RMQ
-
生成树
- Kruskal 算法
- Prim 算法
- 曼哈顿距离最小生成树
- Matrix Tree定理——生成树计数
-
图的连通性
- 强连通分量
- 割点 & 桥
- 边双连通 & 点双连通
- 最小割集——Stoer-Wagner算法
-
树的同构
-
朱刘算法——最小树形图
-
二分图匹配
- 匈牙利算法
- 网络流建图
- KM算法——二分图最大权匹配
- 二分图多重匹配
-
网络流
-
2-SAT问题
-
曼哈顿距离最小生成树
-
带花树算法——一般图匹配
-
通用函数
-
凸包
-
半平面交
-
旋转卡壳
-
背包问题
-
四边形不等式
-
状态压缩
- 枚举子集
- 插头DP
-
数位DP
-
拟阵
-
经典问题
-
分治
- 整体二分
- 陈丹琦分治
- 树的点分治
-
分块
-
倍增
-
手动模拟调用栈
-
高精度
-
快速读入
-
黑科技
- Berlekamp-Massey
- Stern-Brocot Tree
- 五边形数&拆分数
- Meissel-Lehmer Method O(N^{2/3})计算N以内素数个数
- Method of Four Russians 快速处理元素取值范围有限的矩阵乘法