1 前言
项目为《挑战程序设计竞赛(第2版)》习题册攻略,已完结。可配合书籍或笔记,系统学习算法。
- 题量:约200道,代码注释内含详解。
- 难度:总体高于Leetcode,部分接近ACM。
- 题解:代码均AC,题解个人向;Bug或优化请建Issue或Pull Request。
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 分治
-
数列分治
-
平面分治
-
树分治