需要学会但是没学会的算法(把感觉不熟的也加进去了)
- tarjan找scc、桥、割点,缩点
- exgcd,求解同余方程、逆元
- 矩阵
- 树状数组
- 堆、st表、hash表
- 字典树
- 树形DP、记忆化搜索
- 区间DP、序列DP
- *DP优化(不涉及斜率优化、四边形不等式等等)
- 启发式搜索(A*)
- STL的基本使用方法(?
- 脑洞的正确使用方法
- *状态压缩
加*号是选学,加粗为重点,重要值排序不分先后
分割线后面是更变态的省选知识点(因为每个都我都烂的不行就直接复制了)
-
图论
- 网络流(dinic,SAP,ISAP选一个,费用流写EK就行。*zkw费用流),二分图
- 点分治,边分治,*动态点分治
- 树链剖分,动态树,树分块
- 虚树,*prufer编码
- *仙人掌算法
-
- 带权并查集
- Splay(作为平衡树和维护区间),Treap,替罪羊树
- 线段树(权值线段树),树状数组,*线段树合并
- 分块,块状链表,*双向链表
- 凸包
- 树套树
- 主席树,可持久化trie,*其它可持久化数据结构
- 莫队算法,*树上莫队,CDQ分治,整体二分
- 二维线段树,*KDtree
- *舞蹈链,*二进制分组,*左偏树,*超哥线段树,*后缀平衡树,*fhqTreap
-
字符串相关算法及数据结构
- hash(自然溢出,双hash)
- kmp,AC自动机,trie
- 后缀数组
- manacher,最小表示法
- *后缀自动机,*回文自动机,*后缀树
-
数学
- 线性筛,积性函数,容斥原理,莫比乌斯反演
- exgcd,费马小定理,Lucas定理,高中排列组合
- 高斯消元,概率与期望相关
- 中国剩余定理,BSGS,欧拉定理
- 矩阵乘法
- 单纯形法解线性规划
- FFT
- 线性代数(行列式)
- *Simpson积分,高中求导与积分
- *群论
- *生成函数, 多项式类算法
- 博弈论相关,*密码学,阶,原根
-
计算几何
- 向量的点积/叉积,计算几何基础
- *二维计算几何相关,*三维计算几何相关
- *半平面交,*旋转卡壳,*三角剖分
-
搜索
- A*,记忆化搜索,迭代深搜,双向广搜
- 模拟退火,爬山算法,*随机增量法
-
动态规划
- 基础DP,树形DP,数位DP,状压DP,期望DP,基环树DP,*插头DP
- 斜率优化,矩乘优化,单调队列优化,倍增优化,*四边形不等式优化
- trie图DP,*仙人掌DP
-
其他算法
- 构造,乱搞,随机化,三分法,打表,启发式合并
- Huffman树,2-sat,*朱刘算法