数据结构
树状:
- 线段树(区间最大值,区间求和,区间修改)☑
- jls线段树(区间取最值,历史最值)☑
- 主席树(可持久化线段树) ☐
- 树状数组 ☑
- 并查集 ☑
- 最小生成树:
- Kruskal(稀疏图)☑
- Prim(稠密图)☑
- 基环树 ☑
图状:
- 链式前向星 ☑
- 欧拉回路 ☑
线性:
- ST表 (求区间最值问题) ☑
- 单调栈 ☑
- 差分约束 (不等式的线性规划)☑
数学:
- 线性基(任何异或问题)☑
- 数据离散化 ☑
重要:
- 二叉搜索树 ☑
- fhqtreap ☑
- Splay ☑
算法
动规:
- 背包问题 ☑
- 树形DP (父亲节点与儿子节点有关系的问题)☑
- 状态压缩 (数据规模较小,状态可以用2进制表示)☑
- 插头DP ☐
- 数位DP (位数特别大的问题)☑
树上:
- 树链剖分 ☐
- LCA(树上倍增,树链剖分) ☐
图论:
- 网络流 ☑
- Dinic ☑
- 最小费用最大流 ☐
- 最短路 ☐
- SPFA(找负环,求负权图的最短路) ☑
- Dijkstra(堆优化) ☑
- Floyd(多源最短路) ☑
- 拓扑排序(找环,强连通分量缩点,拓扑排序) ☑
- Tarjan(求多个强联通分量) ☑
- 匈牙利算法(求二分图最大匹配) ☑
字符串:
- kmp (判断字符串的最小循环节,模式串匹配)☑
- 扩展kmp ☐
- manacher ☐
- 后缀数组 ☐
- AC自动机 ☐
分治:
- 二分 ☑
- 三分(求函数的最优解) ☑
- 分块 ☑
- 莫队(普通,回滚)(离线区间查询问题)☑
数论&数学:
- 中国剩余定理 ☐
- 容斥 ☐
- 母函数 ☑
- 矩阵快速幂 ☑
- 筛法
- 线性筛 ☑
- min25筛 ☑
- 反素数(因数最多) ☑
- 莫比乌斯反演 ☐
- 狄拉克力卷积 ☐
搜索:
- dfs,bfs ☑
计算几何:
- 自适应辛普森 ☐
- 凸包 ☐
- Andrew ☑
博弈论:
- 巴什博弈 (一堆n个物品,两个人轮流从中取出1~m个,最后取光者胜) ☑
- 威佐夫博弈 (有两堆各若干物品,两个人轮流从任意一堆中至少取出一个或者从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜。) ☑
- 斐波那契博弈 (一堆石子有n个,两人轮流取,先取者第一次可以去任意多个,但是不能取完,以后每次取的石子数不能超过上次取子数的2倍。取完者胜。) ☑
- 尼姆博弈 (有n堆物品,两人轮流取,每次取某堆中不少于1个,最后取完者胜)☑
- SG函数 ☑
杂项:
- 贪心 ☑
ML
- KNN ☑
- 梯度下降 ☑
- pytoch ☑
- CNN ☐