图论
最短路的四种算法(floyd ,dijkstra ,bellman(可以计算负权值),spfa(队列优化的bellman))
最小生成树两种算法(Kruskal,Prim)
树上经典问题(最小支配集,最大独立集,最小覆盖集,最长路等)
二分图匹配(匈牙利,KM)
拓扑排序
连通图(强连通,弱连通,重连通,单项连通,并查集)
网络流
2-SAT
动态规划
要学会递推实现和记忆化搜索实现
状态压缩
数位dp
背包/贪心(九大背包)
斜率优化
插头dp
FFT
字符串
AC自动机
KMP
后缀数组
字典树
LCP,LIS,LCS
RMQ
数论
扩展欧几里德(解方程,求逆元)
快速幂(矩阵快速幂)
快速判素数
进制转换(10进制不好处理的问题转为2进制之类)
欧拉函数
高斯消元
斯特林公式,斯特林数(两者不同,这几年重点)博弈和概率论
组合数学
置换群(Polya加速)
Catalan(卡特兰数)
容斥原理
数据结构(就不包括树,图,搜索和排序了)+STL
链表(List)
栈(stack)
队列(queue),优先队列
set
map
vector
几何
各种基本几何运算
凸包
半平面交
最近点对,最远点对
模拟退火
圆与球的问题
搜索
广度优先(单向、双向)
深度优先
带权优先(A*)
二分搜索
树
树的常见问题(二叉树等)
森林的常见问题
树状数组
最大堆,最小堆
线段树
LCA
树的排序
排序
冒泡排序(稳定),插入排序(稳定),插入排序(不稳定)
快速排序(sort不稳定),归并排序(稳定),堆排序(不稳定),希尔排序(不稳定)
计数排序(稳定),桶排序(稳定),基数排序(稳定)