acm修炼指南
入门
基本算法
- 尺取法
- 前缀和
- 贪心
- 活动安排问题
- 筛法求素数
- 同余定理
- 快速幂
- GCD
int gcd(int a,int b){return b?gcd(b,a%b):a;}
- 扩展gcd
- 查找
- 二分查找
- 三分查找
- 哈希(散列表)
- 枚举
- 开关问题
- 递归
- n皇后问题
- 回溯法
数据结构入门
图
动态规划入门
- 简单递推
- 斐波那契数列
- 楼梯问题
- 母牛问题
- 平面分割问题
- 简单dp
- 数塔问题
- 01背包
- 最长公共子序列(LCS)
- 最长上升子序列(LIS)
其余预备知识
- codeblocks的使用
- 时间复杂度
- c++入门
- qsort,sort,strcpy,strcmp等库函数的使用
基础
博弈
- 斐波那契博弈
- 巴什博弈
- 威佐夫博弈
- 尼姆博弈
组合数学
计算几何
- 离散化
- 凸包
- 叉积
- 点积
- pick定理
- 三角形外新
- 极角排序
- 线段相交
动态规划
- 背包九讲
- 数位dp
- 概率dp
- 状压dp
- 区间dp
数据结构
图论
- 最小生成树
- 最短路
- 搜索
- bfs(广度优先搜索)
- dfs(深度优先搜索)
- 网络流
- 二分图匹配
- 增广路
- 最小费用流
- 二分图匹配
数论
字符串
- 最长回文子串
- manacher算法
- 查找子串
- KMP
- 扩展KMP
- KMP
数学
STL
- vector
- queue
- string
- map
- set
- 迭代器