ACM 考点 及 我自己找的对该算法好理解的博客
- 1 枚举
- 2 模拟
- 3 构造
- 4 位运算的应用
5 查找
- 5.1 二分查找
- 5.2 分块查找
5.3 哈希查找HASH
- 5.3.1字符串与哈希
6 搜索
- 6.1 深度优先搜索DFS
- 6.1.1 剪枝
- 6.2 宽度优先搜索BFS
- 6.3 启发式搜索
9 排序问题
- 9.1 冒泡排序
- 9.2 选择排序
- 9.3 插入排序
- 9.4 快速排序
- 9.5 归并排序
- 9.6 桶排序
10 字符串
- 10.1 存储与操作
- 10.2 字符串匹配
- 10.3 AC自动机
- 10.4 扩展KMP算法
- 10.5 后缀数组
11 动态规划DP
- 11.1 递推法:状态,阶段,决策,边界
- 11.2 背包模型
11.3 子序列模型
- 11.3.1 最长不下降子序列
- 11.4 区间模型
- 11.4.1 RMQ问题
- 11.4.2 LCA问题
- 11.5 资源分配模型
- 11.6 滚动数组
- 11.7 记忆化搜索
- 11.8 状态与转移设计
- 11.9 状态压缩动态规划
- 11.10 树型动态规划
- 11.13 动态规划的决策优化
- 11.13.1 决策单调性与斜率优化
- 11.13.2 四边形不等式
- 11.13.3 高级数据结构优化
12 数据结构
- 12.1 队列
- 12.2 栈
- 12.2.1 性质与应用
- 12.4 树
- 12.4.1 树的存储方式
- 12.4.2 二叉树的遍历
- 12.4.3 树状数组
- 12.4.4 线段树
- 12.4.5 伸展树(splay)
- 12.4.6 主席树(可持久化线段树)
- 12.4.7 树套树:如树状数组套线段树
- 12.4.8 动态树
- 12.4.9 笛卡尔树
- 12.4.10 k-d树
- 12.5 图
- 12.5.1 图的概念与性质
- 12.5.2 图的存储
- 12.5.3 连通分量与强连通分量
- 12.5.4 生成树问题:Prim、Kruskal
- 12.5.5 最短路径:Dijkstra、SPFA
- 12.5.6 拓扑排序
- 12.6 并查集
- 12.6.1 路径压缩
13 树的分治
- 13.1 基于边的分治
- 13.2 基于点的分治
- 13.3 基于链的分治
- 14 二分图匹配
- 14.1 最大匹配
- 14.2 最大权匹配
15 网络流
- 15.1 最大流与最小割
- 15.2 有费用的网络流
- 15.3 有流量上下界的网络流
16 数论
- 16.1 整数的性质
- 16.2 质数与整除
- 16.3 同余
- 16.4 欧拉函数
- 16.5 不定方程
- 16.6 中国剩余定理
- 16.7 数论经典问题
17 组合数学
- 17.1 鸽笼原理与Ramsey定理
- 17.2 排列组合与容斥原理
- 17.3 群论与置换群
- 17.4 Burnside引理与Pólya定理
- 17.5 数列与母函数
18 线性代数
- 18.1 矩阵乘法与递推关系
- 18.2 高斯消元与行列式
- 18.3 模线性方程组
19 几何问题
- 19.1 解析几何,图形与方程
- 19.2 计算几何,向量运算,高维几何
- 19.3 半平面交
- 19.4 凸包
- 19.5 几何经典问题
20 游戏与博弈论
- 20.1 最小最大原理
- 20.2 Nim游戏与SG定理
- 20.3 其他模型
- 21 快速傅里叶变换FFT
- 21.1 快速多项式乘法
- 21.2 单位模根