原文链接
简单列了一点
1.1 基本数据结构
-
数组
-
链表,双向链表
-
队列,单调队列,双端队列
-
栈,单调栈
1.2 中级数据结构
-
堆
-
并查集与带权并查集
-
hash 表
自然溢出
双hash
1.3 高级数据结构
-
树状数组
-
线段树,线段树合并
-
平衡树
Treap 随机平衡二叉树
Splay 伸展树
(选学)Scapegoat Tree 替罪羊树
-
块状数组,块状链表
5.(选学) 树套树
线段树套线段树
线段树套平衡树
(选学)平衡树套线段树
6.可并堆
左偏树
(选学)配对堆
- (选学)KDtree,(选学)四分树
1.4 可持久化数据结构
-
可持久化线段树
主席树
-
(选学)可持久化平衡树
-
(选学)可持久化块状数组
1.5 字符串相关算法及数据结构
-
KMP
-
AC 自动机
-
后缀数组
-
(选学)后缀树
-
(选学)后缀自动机
-
字典树 Trie
-
manacher
1.6 图论相关
-
最小生成树
prim
kruskal
-
最短路,次短路,K短路
spfa
dijkstra
floyd
-
图的连通
连通分量
割点,割边
-
网络流
最大流
最小割
费用流
分数规划
-
树相关
树上倍增,公共祖先
树链剖分
树的分治算法(点分治,边分治,(选学)动态?树分治)
动态树 (LCT,(选学)树分块)
虚树
(选学)prufer编码
-
拓扑排序
-
欧拉图
-
二分图
(选学)KM算法
匈牙利算法
1.7 数学相关
-
(扩展)欧几里得算法,筛法,快速幂
斐蜀定理
更相减损术
-
欧拉函数与(选学)降幂大法
-
费马小定理
-
排列组合
lucas定理
-
乘法逆元
-
矩阵乘法
-
数学期望与概率
-
博弈论
sg函数
树上删边游戏
-
(选学)拉格朗日乘子法
-
中国剩余定理
-
线性规划与网络流
-
单纯型线性规划
-
辛普森积分
-
模线性方程组
-
容斥原理与莫比乌斯反演
-
置换群
-
快速傅里叶变换
-
(选学)大步小步法(BSGS),扩展BSGS
1.8 动态规划
-
一般,背包,状压,区间,环形,树形,数位动态规划
记忆化搜索
斯坦纳树
背包九讲
-
斜率优化与(选学) 四边形不等式优化
-
环 + 外向树上的动态规划
-
(选学)插头动态规划
1.9 计算几何
-
计算几何基础
-
三维计算几何初步
-
(选学)梯形剖分与(选学)三角形剖分
-
旋转卡壳
-
半平面交
-
pick定理
-
扫描线
1.10 搜索相关
-
bfs,dfs
-
A* 算法
-
迭代加深搜索,双向广搜
1.11 特殊算法
-
莫队算法,(选学)树上莫队
-
模拟退火
-
爬山算法
-
随机增量法
1.12 其它重要工具与方法
1.模拟与贪心
-
二分,三分法(求偏导)
-
分治,CDQ分治
-
高精度
-
离线
-
ST表
1.13 STL
-
map
-
priority_queue
-
set
-
bitset
-
rope
1.14 非常见算法
-
(选学)朱刘算法
-
(选学)弦图与区间图