1 前言
项目为《挑战程序设计竞赛(第2版)》习题册攻略,已完结。可配合书籍或笔记,系统学习算法。
- 题量:约200道,代码注释内含详解。
- 难度:总体高于Leetcode,部分接近ACM。
1.1 题库来源
- Google Code Jam(GCJ)
- Peking University Online Judge(POJ)
- Aizu Online Judge(AOJ)
- UVa Online Judge(UVa)
- CodeForces(CF)
1.2 算法笔记
1.3 题库目录
2 初级算法
2.1 穷竭搜索
深度优先搜索
宽度优先搜索
穷竭搜索
2.2 贪心法
区间贪心
其他贪心
2.3 动态规划
基础DP
优化递推式
进阶DP
2.4 数据结构
优先队列
并查集
2.5 图论
最短路
最小生成树
2.6 数论
辗转相除法
素数
快速幂
3 中级算法
3.1 二分搜索
最大化最小值
01分数规划
第k大值
最小化第k大值
其他二分搜索
3.2 常用技巧
尺取法
反转
弹性碰撞
折半枚举
离散化
3.3 数据结构(二)
树状数组
线段树和平方分割
3.4 动态规划(二)
状态压缩DP
矩阵的幂
数据结构与DP
3.5 网络流
最大流与最小割
二分图匹配
最小费用流
3.6 计算几何
极限
平面扫描
4.1 数论(二)
模运算
矩阵
计数
4.2 博弈论
博弈DP
Nim和Grundy数
4.3 图论(二)
强连通分量
2-SAT
LCA
4.4 常用技巧(二)
栈
双端队列
4.5 智慧搜索
剪枝
A*与IDA*
4.6 分治
数列分治
平面分治
树分治