基础算法
-枚举
-模拟
-递推
-贪心
-递归
-分治
-NP问题
排序算法
-冒泡排序
-选择排序
-桶排序
-插入排序
-归并排序
-快速排序
-堆排序
-希尔排序
-外部排序
查找算法
-顺序查找
-二分查找
-二分答案
搜索算法
-BFS
-DFS
-剪枝
-记忆化搜索
-启发式搜索,A*
-迭代加深,ID
-启发式迭代加深,IDA*
-Dancing Links
-随机调整
-遗传
-模拟退火
数论
-素数判断,质数,筛法
-最大公约数,gcd
-扩展欧几里德
-不定方程
-数的进制
-集合论
-关系
-同余运算
-解线性同余方程
-中国剩余定理
-快速排序
-组合数学
–排列与组合
–基本概念
–二项式定理
–康托展开
–袋与球问题
-鸽笼原理
-容斥原理
-Fibonacci
-Catalan
-Stirling
-差分序列
-生成函数
-置换
-Polya原理
-概率论
–简单概率
–条件概率
–Bayes定理
–期望
矩阵,线性代数
-矩阵的概念和运算
-矩阵乘法
-线性递推
-高斯消元
-异或方程组
-逆元
微积分初步
-极限
-导数
-积分
-定积分
-立体解析几何
-级数
线性表
-数组
-向量
-堆栈
-队列
-块状链表,块状数组
-字符串处理
-树状数组
-st表,稀疏表
图
-图的建立
-邻接矩阵
-邻接表
-图遍历
-拓扑排序
-最短路
–Floyd算法
–Dijstra算法
–Bellman-Ford算法
–SPFA算法
–K短路
-生成树
–Prim算法
–Kruskal算法
–生成树的另类算法
–次小生成树
–特殊生成树
-圈和块
–最小环
–负权环
–连通块
-2-SAT
-欧拉公式
-四色定理
-强连通分量
–Tarjan算法
-割点和桥
-欧拉回路
-AOV问题
-AOE问题
-差分约束系统
-仙人掌
树
-树的遍历
-树上距离问题
–节点到根的距离
–最近公共祖先
–节点间的距离
–树的直径
-哈夫曼树
-二叉堆
–左偏树
–斜堆
–二项堆
-二叉排序树,平衡树
–AVL
–Treap
–SBT
–Splay
–静态排序树
–替罪羊树
-并查集
-线段树
–线段树操作
–二维线段树
–矩形树
-动态树
–树链剖分
–Link-Cut Tree,LCT
-K-D树
-LCA
-RMQ
-zkw线段树
-树套树
-主席树
-可持久化
HASH
-ELFhash
-SDBM
-BKDR
-RK
动态规划
-动态规划初步
-背包
-子母树
-多维状态
-区间动规
-动态规划优化
–降低维度
–优先队列
–单调队列,决策单调
–矩阵加速
–斜率优化
–状态压缩
–树形动规
–凸完全单调性
–四边形不等式
二分图
-最大匹配
–匈牙利算法
–非二分图最大匹配
–Konig定理
-带权二分图匹配
–KM算法
-稳定婚姻系统
网络流
-最大流
–Dinic算法
–Sap算法
–有上下界的最大流
-最小割
–闭合图
–最小点权覆盖集
–最大点权独立集
–01分数规划
–最大密度子图
-费用流
–最短路增广费用流
–zkw费用流
–最小费用可行流
计算几何
-凸包
-叉积
-线段相交
-点积
-半平面相交,半平面交
-最近点对
-凸多边形的交
-离散化扫描
-旋转卡壳
字符串
-Trie树
-AC自动机
-KMP
-后缀数组
-后缀树
-有限状态自动机
-Huffman编码
-简单密码学
其它
-随机调整,随机贪心,随机化
-爬山法
-模拟退火
-博弈论
–Nim取子游戏
–博弈树
–Shannon开关游戏
-DFT,FFT
-位运算
-骗分
-高精度