0.算法的时空分析K0.1时间分析K0.2空间分析K0.3时空分配K1.基础算法1.1枚举K1.2模拟K1.3递推K1.4贪心K1.5递归K1.6分治K2.排序算法2.1冒泡排序K2.2选择排序K2.3桶排序K2.4插入排序K2.5归并排序K2.6快速排序K2.7堆排序K2.8二叉排序树K3.查找算法3.1顺序查找K3.2二分查找K3.3二分答案K4.搜索算法4.1BFS和DFSK4.2简单剪枝K4.3记忆化搜索K5.动态规划5.1动态规划初步K5.2背包问题K5.3最大(小)代价子母树K6.排列组合6.1基本概念K6.2二项式定理K6.3康托展开K6.4袋与球问题K7.数论7.1素数判断K7.2最大公约数K7.3扩展欧几里德K7.4不定方程K7.5几类数列K7.6数的进制K8.线性表8.1数组和向量K8.2堆栈K8.3队列K8.4字符串K9.图9.1图的遍历和拓扑排序9.1.1图的遍历K9.1.2拓扑排序O9.2最短路9.2.1Floyd算法K9.2.2Dijstra算法K9.2.3Bellman-Ford算法(效率太低)9.2.4SPFA算法K9.3生成树9.3.1Prim算法K9.3.2Kruskal算法K9.4圈和块9.4.1最小环O9.4.2负权环O9.4.3连通块O/noip10.树10.1树的遍历K10.2树上距离问题10.2.1节点到根的距离O(DFS)10.2.2最近公共祖先O(DFS)10.2.3节点间的距离O(DFS)10.2.4树的直径O10.3哈夫曼树K10.4二叉堆K10.5树形动态规划K10.6二叉排序树K10.7并查集K11.HASHK11.1ELFhash11.2SDBM11.3BKDR11.4RK12.数论12.1矩阵乘法O12.2高斯消元(L)12.3异或方程组(L)13.动态规划13.1多维状态动态规划13.2状态压缩动态规划13.2.1递推K13.2.2基于连通性13.3动态规划优化13.3.1降低维度K13.3.2优先队列K13.3.3单调队列K13.3.4矩阵加速O13.3.5斜率优化(凸包就是这样!!!)13.3.6四边形不等式(懒得鸟他)14.二分图14.1最大匹配14.1.1匈牙利算法O14.1.2最大流算法O14.1.3覆盖集和独立集14.1.4非二分图最大匹配14.2带权二分图匹配14.2.1KM算法14.2.2费用流算法15.网络流15.1网络流初步15.2最大流15.2.1Dinic算法15.2.2Sap算法15.2.3有上下界的最大流15.3最小割15.3.1最小割15.3.2平面图最小割15.3.3闭合图15.3.4最小点权覆盖集与最大点权独立集15.3.50/1分数规划15.3.6最大密度子图15.4费用流15.4.1最短路增广费用流15.4.2zkw-费用流15.4.3最小费用可行流16.图和树16.1路径问题K16.1.1K短路16.1.2差分约束系统16.2生成树16.2.1生成树的另类算法16.2.2次小生成树16.2.3特殊生成树16.32-SAT16.4线段树O16.5平衡树16.5.1Treap16.5.2Splay16.6LCA与RMQ16.7树状数组17.字符串K17.1TrieK17.2KMP及扩展K17.3后缀数组K18.选学内容18.1启发式搜索18.2跳舞链18.3随机调整与随机贪心18.4爬山法与模拟退火18.5博弈论18.6动态树18.6.1树链剖分18.6.2Link-CutTree18.7计算几何18.8DFT和FFT