[总结]勿忘本心
两年过去了,看看还有多少没学会的?
====
1. 模拟
1.1 高精度(可用java)
2. 数据结构
2.1 栈、队列(双端队列,单调队列,优先队列)、链表(块状链表)
2.2 查找树(Treap、SBT、splay等)
Ref to
《伸展树的基本操作与应用》 杨思雨 2004 (Splay)
http://www.nocow.cn/index.php/Treap (Treap)
《Size Balanced Tree》 陈启峰 2007 (SBT)
2.3 图(邻接表等)
2.4 并查集
2.5 字典(Hash,Trie树见[8])
2.6 堆及其变种((*)Fibonacci堆)
2.7 其他
2.7.1 线段树
Ref to
《线段树的应用》 林涛 2004
2.7.2 树状数组
2.7.3 (*)Huffman树
3. 动态规划
3.1 子问题,最优子结构
3.2 递推,分治
Ref to [3.3],[5.1]
3.3 矩阵乘法
Ref to [5.3]
3.4 树型dp
Ref to
《多角度思考 创造性思维》 陈瑜希 2007
3.5 其他dp与优化
Ref to
《动态规划算法的优化技巧》 毛子青 2001
3.5.1 状态压缩dp
3.5.2 凸单调性,四边形不等式
Ref to
《凸完全单调性的一个加强与应用》 杨哲 2007
3.5.3 插头dp
Ref to
《基于连通性状态压缩的动态规划问题》 陈丹琦 2008
4. 搜索
4.1 一般搜索及剪枝
4.2 A*,IDA*
Special Orz to
ACRush
4.3 (*)博弈问题,alpha-beta剪枝
4.4 (*)Dancing Links
Ref to
《Dancing Links》 D.E.Knuth Feb 22,2000
5. 数学
5.0 数学基础
5.1 组合数学(排列组合,(*)群论:Burnside定理、Polya定理,母函数,Mobius反演)
5.2 数论(同余,素数)
5.3 (*)矩阵(高斯消元,FFT,Strassen)
Ref to [3.4]
5.4 单调性与三分法
6. 图论
Ref to [2.3]
《图论总结》 Amber
5.1 基础
5.1.1 遍历(DFS,BFS)
5.1.2 拓扑排序
5.1.3 强连通分量
5.1.4 (*)可行遍性(Hamilton回路,Euler回路,TSP(模拟退火))
5.2 树的算法
5.2.1 最小生成树(Kruskal,Prim),k小生成树,度限制生成树,(*)最小直径生成树
5.2.2 树的分治(QTree系列)
5.2.3 动态树
Ref to
《动态树问题及其应用》 袁昕颢 2007
5.3 最短路
5.3.1 单源最短路(Dijkstra,Bellman-Ford/SPFA),k短路(A*)
5.3.2 所有顶点间最短路(Floyd-Warshall,Johnson)
5.3.3 差分约束系统
5.4 网络流
5.4.1 最大流
5.4.1.1 基本算法(Ford-Fulkerson,Edmonds-Karp)
5.4.1.2 预流推进算法
5.4.1.3 Dinic
Ref to
《浅谈基于分层思想的网络流算法》 王欣上 2007
5.4.1.4 有上下界的流问题
5.4.2 费用流
5.4.2.1 最小费用流
5.4.2.2 网络单纯形
5.4.3 (*)最小割
Ref to
《最小割模型在信息学竞赛中的应用》 Amber 2007
5.5 匹配
Ref to [5.4]
5.5.1 二分图匹配(无权图匈牙利算法,带权图KM算法)
5.5.2 (*)一般图(带花树)
5.6 其他
5.6.1 (*)弦图与区间图
5.6.2 (*)2-SAT
7. 计算几何
7.1 基础(基本算法,离散化,扫描线等)
7.2 凸包(Graham)
7.3 最近点对
7.4 面积/体积问题
7.5 半平面交
Ref to
《半平面交算法及其应用》 李澎煦 2002
7.6 其他
8. 字符串(?)
8.1 自动机+DP
8.2 KMP,Extended-KMP
Ref to
《寻找最大重复子串》 林希德 2003
8.3 相关数据结构(Trie树,后缀树、后缀数组(这是啥?))
Ref to
《寻找最大重复子串》 林希德 2003
《Trie图的构建、活用与改进》 王赟 2006
9. 其他
9.1 贪心
Ref to
《部分贪心在信息学竞赛中的应用》 高逸涵 2008
9.2 线性规划
9.2.1 标准型和松弛型
9.2.2 单纯形
Ref to [5.4.2.2]