全为转载,非原创,所有权利归原作者所有
基本数据结构
数组
链表,双向链表
队列,单调队列,双端队列
栈,单调栈
中级数据结构
堆
并查集与带权并查集
hash
高级数据结构
树状数组
线段树,线段树合并
LCT
平衡树
TreapSplay- 替罪羊树
- SBT
块状数组,块状链表
树套树
- 线段树套线段树
- 线段树套平衡树
- 平衡树套线段树
可并堆
- 左偏树
- 配对堆
KDtree,四分树
可持久化数据结构
可持久化线段树
- 主席树
可持久化平衡树
可持久化块状数组
字符串相关算法及数据结构
KMP,exKMP
AC自动机
最小最大表示法
后缀数组
后缀树
后缀自动机
字典树Trie
manacher
图论相关
最小生成树
primkruskal
最短路,次短路,K短路
spfadijkstrafloyd
图的连通
连通分量割点
2-SAT
网络流
最大流最小割费用流分数规划
树
树上倍增,公共祖先- 树链剖分
- 树的分治算法(点分治,边分治,动态树分治)
- 动态树(LCT,树分块)
- 虚树
- prufer编码
- 哈夫曼树
拓扑排序
欧拉图
二分图
- KM算法
- 匈牙利算法
数学相关
数论
exgcd裴蜀定理欧拉函数及降幂- 费马小定理
- 逆元
- 解同余方程组(中国剩余定理,两两合并)
- 快速傅里叶变换
- 快速数论变换
排列组合
- lucas定理
矩阵
矩阵乘法及优化递推
群论
- 置换群
- polya定理
博弈论
- sg函数
- 树上删边游戏
计算几何
- 计算几何基础
- 三维计算几何初步
- 梯形剖分与三角形剖分
- 旋转卡壳
- 半平面交
- pick定理
- 扫描线
其他
- 概率与期望
- 拉格朗日乘子法
- 线性规划
- 辛普森积分
- 莫比乌斯反演
- 容斥原理
- 大步小步法(BSGS),扩展BSGS
- 康托展开
动态规划
一般,背包,状压,区间,环形,树形,数位动态规划
- 记忆化搜索
- 背包九讲
斜率优化与四边形不等式优化
环+外向树上的动态规划
插头DP
图上DP
搜索
bfs,dfs
A*算法
迭代加深搜索,双向广搜
特殊算法
莫队算法,树上莫队
模拟退火
爬山算法
随机增量法
其它重要工具与方法
模拟与贪心
二分,三分法(求偏导)
分治,CDQ分治
离线
ST表
DancingLinks
STL
map
priority_queue
set
bitset
rope
xxxx_heap
非常见算法
朱刘算法
弦图与区间图