今天看到个超棒的网站:OI WIKI(https://oi-wiki.org/),里面知识点的分类我觉得很合理,于是决定搬运一下这个目录,同时匹配上我已经写过的内容,并补充需要补充的内容。
一、语言基础
略
二、算法基础
1、枚举
2、模拟
3、递归 / 分治
4、贪心
5、排序
① 基础排序(选择,冒泡,插入,计数);
② 快速排序;
③ 堆排序;
④ 归并排序;
③ 其他(基数,桶,希尔,相关STL);
6、二分
7、倍增
8、构造
9、前缀和 / 差分
三、搜索
1、DFS / BFS
2、启发式搜索 / A* / IDA*
3、双向 / 迭代加深
4、回溯 / Dancing Links
5、搜索优化
四、动态规划
1、记忆化搜索
2、基础DP(背包,区间,数位,计数,DAG)
3、高级DP(树形,插头,状态压缩,动态)
4、动态规划优化
五、字符串
1、匹配算法
2、字符串Hash
3、Trie树
4、KMP / 扩展KMP算法
5、AC自动机
6、后缀数组SA / 后缀自动机SAM / 后缀树
9、其他(Manacher / 回文树 / 序列自动机 / 最小表示法 / Lyndon分解)
六、数学
1、符号,位运算与进位制
2、快速幂
3、高精度计算
4、数论
① 最大公约数
② 欧拉函数
③ 筛法
④ 费马小定理 / 欧拉定理
⑤ 裴蜀定理
⑥ 乘法逆元 / 线性同余方程
⑦ 中国剩余定理
⑧ BSGS
⑨ 莫比乌斯反演
⑩ 其他(原根,鲁卡斯定理,杜教筛,Min_25筛,类欧几里得算法)
5、多项式
略
6、线性代数
7、线性规划
8、组合数学
① 排列组合
② 卡特兰数
③ 斯特林数
④ Cantor展开
⑤ 容斥原理
⑥ 抽屉原理
9、概率 / 期望
10、置换群
11、斐波那契数列
12、博弈论
13、牛顿迭代法
14、数值积分
15、分段打表(?
七、数据结构
1、栈,队列和链表
2、哈希表
3、并查集
4、堆
5、块状数据结构
① 分块思想
② 树分块
③ 块状链表
④ 块状数组
⑤ Sqrt Tree
6、单调栈 / 单调队列
7、ST表
8、树状数组
9、线段树
10、区间最值操作 / 区间历史最值
11、划分树
12、二叉搜索树 / 平衡树
① Treap
② Splay
③ 其他树(WBLT / Size Balanced Tree / AVL树 / 替罪羊树 / 笛卡尔树 / 左偏红黑树)
13、可持久化数据结构
① 主席树(可持久化线段树)
② 其他可持久化结构(块状数组,平衡树,Trie,可并堆)
14、树套树
① 线段树套线段树
② 平衡树套线段树
③ 线段树套平衡树
④ 树状数组套主席树
15、动态树
① Link Cut Tree(LCT)
② Euler Tour Tree
③ Top Tree
16、其他树(K-D Tree,珂朵莉树,析合树)
八、图论
1、相关概念和图的存储
2、DFS / BFS(图论)
3、树上问题
① 最近公共祖先 LCA
② 树的重心
③ 树链剖分
④ 其他树问题(树上启发式合并,虚树,树分治,动态树分治,树哈希)
4、矩阵数定理
5、有向无环图
6、拓扑排序
7、最小生成树
8、最小树形图
9、最短路
10、拆点
11、差分约束
12、k短路
13、连通性问题
① 强连通分量
② 割点和桥
14、2-SAT
15、欧拉图
16、哈密顿图
17、二分图
18、最小环
19、平面图
20、图的着色
21、网络流
① 最大流 / 最小割
② 费用流
③ 上下界网络流
22、其他(Prufer序列,LGV引理,弦图)
九、计算几何
1、二维计算机和基础
2、三维计算机和基础
3、Pick定理
4、三角剖分
5、凸包
6、扫描线
7、旋转卡壳
8、半平面交
9、平面最近点对
10、其他(随机增量法,反演变换,杂项)
十、杂项
1、读入输出优化
2、离散化
3、离线算法
① CSQ分治
② 整体二分
③ 莫队算法
4、随机化
① 随机函数
② 爬山算法
③ 模拟退火
5、悬线法
6、计算理论基础
7、字节顺序
8、约瑟夫问题
9、RMQ
9、其他(Stren-Brocot树,Farey序列,格雷码,表达式求值,在一台机器上规划任务)
原文:https://www.cnblogs.com/jinkun113/p/12528423.html