杂题乱写:
\(\text{dp}\) 方向:
- 基础 \(\text{dp}\):背包 \(\text{dp}\),线性 \(\text{dp}\),区间 \(\text{dp}\),树形 \(\text{dp}\),\(\text{DAG}\) 上 \(\text{dp}\)。
- 进阶 \(\text{dp}\):状压 \(\text{dp}\),期望 \(\text{dp}\),数位 \(\text{dp}\)。
- \(\text{dp}\) 优化:线段树/树状数组优化 \(\text{dp}\),倍增优化 \(\text{dp}\),单调队列优化 \(\text{dp}\),斜率优化 \(\text{dp}\)。
数学方向:
- 基础数论:素数(线性筛,分解质因数,唯一分解定理),欧几里得算法(\(\text{gcd}\),裴属定理,\(\text{exgcd}\),线性同余方程),中国剩余定理(\(\text{crt}\),\(\text{excrt}\)),逆元(费马小定理,欧拉定理)。
- 基础组合数学:排列组合(杨辉三角,组合数取模,\(\text{Lucas}\) 定理,\(\text{exLucas}\)),容斥原理,卡特兰数。
- 线性代数:矩阵乘法,高斯消元,线性基。
- 进阶数论:\(\text{BSGS}\),数论分块,积性函数(欧拉函数,莫比乌斯函数,除数函数),狄利克雷卷积,莫比乌斯反演,杜教筛。
- 群论:置换群,\(\text{Burnside}\) 引理,\(\text{Polya}\) 定理。
数据结构方向:
- 基础数据结构:队列,栈,堆,链表,并查集。
- \(\text{STL}\):
map
,set
,multiset
,queue
,priority_queue
,stack
,vector
,bitset
。 - 进阶数据结构:优先队列,单调队列,单调栈,线段树(普通线段树,权值线段树,线段树上二分,线段树合并,线段树分治),树状数组,\(\text{ST}\) 表,分块。
- 高级数据结构:平衡树(\(\text{Splay}\),\(\text{fhq_Treap}\),\(\text{Treap}\)),可持久化线段树,树套树(线段树套平衡树,树状数组套主席树)。
图论方向:
- 最短路问题:\(\text{Dijkstra}\),\(\text{SPFA}\),\(\text{Floyd}\)。
- 连通性问题:\(\text{Tarjan}\),强连通分量,缩点,割点,割边,点双连通分量,边双连通分量。
- 基础树上问题:求树的直径、重心,生成树(\(\text{Kruskal}\),\(\text{Prim}\)),\(\text{dfs}\) 序,欧拉括号序,树上倍增,轻重链剖分。
- 进阶树上问题:\(\text{DSU on Tree}\),基环树,\(\text{prufer}\) 序列,虚树,树分治(点分治、边分治、点分树),\(\text{Kruskal}\) 重构树。
字符串方向:
- 基础字符串算法:字符串哈希。
- 进阶字符串算法:\(\text{kmp}\),\(\text{Trie}\) 树,\(\text{Manacher}\)。
- 高级字符串算法:\(\text{ACAM}\) <AC
自动机常用技巧汇总>,\(\text{PAM}\),\(\text{SA}\),\(\text{SAM}\),\(\text{GSA}\)。
其他思想与杂项:
- 二分、三分。
- 莫队(普通莫队,带修莫队,回滚莫队)。
- 启发式合并。
- \(\text{cdq}\) 分治。
- \(\text{meet-in-the-middle}\)。