须知
本博文是对博主的挑战程序设计竞赛——经验篇分类的索引。
文章目录
- 题目难度:三星以下是独立完成的或认为比较简单的,三星及以上是没有独立完成的或认为有难度。
- 复习指数:三星以下到一星以上的具有一定的复习价值,三星及以上推荐复习,零星不具有复习价值。
第一章:蓄势待发——准备篇
解题报告链接:挑战程序设计竞赛(第一章)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
三角形 | 暴力搜索 | ✦✧✧✧✧ | ✧✧✧✧✧ | |
Ants | 脑洞 | ✦✧✧✧✧ | ✦✧✧✧✧ | 多种方法 |
难度增加的抽签问题 | 二分 | ✦✦✧✧✧ | ✦✦✦✧✧ | 降低复杂度 |
第二章:初出茅庐——初级篇
2.1 搜索
解题报告链接:挑战程序设计竞赛(第二章:2.1 搜索)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
部分和问题 | DP/深搜 | ✦✦✦✧✧ | ✦✦✦✧✧ | 递归,多种变体对比 |
Lake Counting | 深搜 | ✦✧✧✧✧ | ✦✧✧✧✧ | 模板题 |
迷宫的最短路径 | 广搜 | ✦✧✧✧✧ | ✦✧✧✧✧ | 模板题 |
2.2 贪心
解题报告链接:挑战程序设计竞赛(第二章:2.2 贪心)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
硬币问题 | 贪心/DP | ✦✧✧✧✧ | ✦✦✧✧✧ | DP方法的使用 |
区间调度问题 | 贪心 | ✦✦✧✧✧ | ✦✦✧✧✧ | 贪心策略的选择 |
字典序最小问题 | 贪心 | ✦✦✧✧✧ | ✦✦✧✧✧ | 英文题目理解 |
Saruman’s Army | 贪心 | ✦✦✧✧✧ | ✦✦✧✧✧ | STL的使用 |
Fence Repair | 贪心/哈夫曼树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 优先队列、数据类型 |
2.3 动态规划
解题报告链接:挑战程序设计竞赛(第二章:2.3 动态规划)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
01背包 | DP | ✦✧✧✧✧ | ✦✧✧✧✧ | 模板 |
01背包之2 | DP | ✦✧✧✧✧ | ✦✧✧✧✧ | w太大,使用v |
完全背包问题 | DP | ✦✧✧✧✧ | ✦✧✧✧✧ | 01背包的逆序循环 |
最长公共子序列 | DP | ✦✧✧✧✧ | ✦✧✧✧✧ | 模板 |
最长上升子序列 | DP | ✦✧✧✧✧ | ✦✧✧✧✧ | 模板 |
多重部分和问题 | DP | ✦✦✦✧✧ | ✦✦✦✧✧ | 两种方法,状态构造的重要性 |
划分数 | DP | ✦✦✦✧✧ | ✦✦✦✧✧ | 状态转移方程 |
多重集组合数 | DP | ✦✦✦✧✧ | ✦✦✦✧✧ | 两种方法,状态转移方程多样性 |
- 动态规划题目类型总结:
- 背包问题:基本的动态规划(01背包(即变体),完全背包和多重背包)
- LIS和LCS
- 多重部分和问题:n种类型数,每一种有 m i m_i mi个,从中取出若干个数使其之和等于K。
- 划分数:n个同类物品,将物品划分为不超过m份,求划分方法的方法数目。(一般需要模M)
- 多重集组合数:n种类型物品,每一种有 a i a_i ai个,从中取m个,求取的方法的数目。
2.4 数据结构
解题报告链接:挑战程序设计竞赛(第二章:2.4 数据结构)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
Expedition | 优先队列/贪心 | ✦✦✧✧✧ | ✦✦✧✧✧ | 注意自定义的sort和优先队列函数 |
食物链 | 并查集 | ✦✦✦✦✧ | ✦✦✦✦✧ | 需要维护关系域,有可能输入只有一组数据 |
2.5 图论
解题报告链接:挑战程序设计竞赛(第二章:2.5 图论)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
Roadblocks | 最短路径 | ✦✦✦✧✧ | ✦✦✦✧✧ | 次短路径,dijstra变体 |
Conscription | 最小生成树 | ✦✦✦✧✧ | ✦✦✦✧✧ | kruskal |
Layout | 最短路径 | ✦✦✦✧✧ | ✦✦✦✧✧ | Bellman算法,构图 |
2.6 数学问题
解题报告链接:挑战程序设计竞赛(第二章:2.6 数学问题)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
线段上格点个数 | 最小公约数 | ✦✧✧✧✧ | ✦✧✧✧✧ | 注意问题的转化,欧几里得算法 |
双六 | 扩展欧几里得算法 | ✦✦✧✧✧ | ✦✦✧✧✧ | 扩展欧几里得算法 |
素数有关的算法 | 最短路径 | ✦✦✧✧✧ | ✦✦✧✧✧ | 素数测试,埃氏筛法,大区间求素数,快速幂 |
扩展欧几里得的一些习题及参考资料
acm之旅之扩展欧几里得
2.7 第二章习题总结
解题报告链接:挑战程序设计竞赛(第二章习题总结)
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
Curling 2.0 | 深搜 | ✦✦✦✧✧ | ✦✦✦✧✧ | 题意理解,dfs |
Meteor Shower | 广搜 | ✦✦✦✧✧ | ✦✦✦✧✧ | 细节问题 |
Smallest Difference | 穷竭搜索 | ✦✦✦✧✧ | ✦✦✦✦✧ | 全排列模板题 |
Hopscotch | 穷竭搜索/深搜 | ✦✦✦✧✧ | ✦✦✧✧✧ | set的使用 |
Cleaning Shifts | 贪心 | ✦✦✦✧✧ | ✦✦✦✧✧ | 区间覆盖问题 |
Radar Installation | 贪心 | ✦✦✦✧✧ | ✦✦✦✦✧ | 注意问题的转化,区间 |
Stall Reservations | 贪心/优先队列 | ✦✦✦✧✧ | ✦✦✦✦✧ | 贪心策略的选择 |
Yogurt factory | 贪心/脑洞 | ✦✦✦✧✧ | ✦✦✧✧✧ | 脑洞 |
Packets | 贪心 | ✦✦✦✧✧ | ✦✦✦✧✧ | 思考缜密,模拟 |
Allowance | 贪心 | ✦✦✦✦✧ | ✦✦✦✦✧ | 贪心策略的选择,代码 |
Stripies | 贪心 | ✦✦✧✧✧ | ✦✧✧✧✧ | 贪心策略 |
Protecting the Flowers | 贪心 | ✦✦✦✧✧ | ✦✦✦✧✧ | 代码的优化 |
Sumsets | 动态规划 | ✦✦✦✧✧ | ✦✦✦✦✧ | 完全背包的优化 |
Sunscreen | 优先队列/贪心 | ✦✦✦✦✧ | ✦✦✦✧✧ | 脑洞,贪心 |
Moo University - Financial Aid | 优先队列/排序 | ✦✦✦✦✧ | ✦✦✦✧✧ | 有想象力地使用优先队列 |
Wireless Network | 并查集 | ✦✦✧✧✧ | ✦✦✧✧✧ | 并查集模板 |
Find them, Catch them | 并查集 | ✦✦✦✧✧ | ✦✦✦✧✧ | 类似食物链,种类并查集模板 |
Six Degrees of Cowvin Bacon | 最短路径 | ✦✦✧✧✧ | ✦✦✧✧✧ | 使用多源最短路径(Floyd) |
Wormholes | 判断负环 | ✦✦✧✧✧ | ✦✦✧✧✧ | Bellman_Ford |
Silver Cow Party | 最短路径 | ✦✦✦✧✧ | ✦✦✦✧✧ | 思维转换(正反两次) |
Bad Cowtractors | 最小生成树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 最大生成树 |
Six Degrees of Cowvin Bacon | 最短路径 | ✦✦✧✧✧ | ✦✦✧✧✧ | 使用多源最短路径(Floyd) |
Out of Hay | 最短路径 | ✦✦✧✧✧ | ✦✧✧✧✧ | 主要是理解题意 |
Dead Fraction | 数论 | ✦✦✦✦✧ | ✦✦✧✧✧ | 数学推导,不具有一般性,较难 |
Prime Path | 素数/BFS | ✦✦✧✧✧ | ✦✦✦✧✧ | 将数论和搜索联系在了一起,好题 |
X-factor Chains | 素数 | ✦✦✦✧✧ | ✦✦✦✧✧ | 素因数分解 |
Semi-prime H-numbers | 素数 | ✦✦✧✧✧ | ✦✦✦✧✧ | 简单打表 |
Raising Modulo Numbers | 快速幂 | ✦✧✧✧✧ | ✦✦✧✧✧ | 快速幂方法的使用 |
Pseudoprime numbers | 快速幂 | ✦✧✧✧✧ | ✦✦✧✧✧ | 快速幂方法的使用 |
第三章:出类拔萃——中级篇
3.2 常用技巧精选(一)
解题报告链接:挑战程序设计竞赛(第三章:3.2 常用技巧精选(一))
题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
---|---|---|---|---|
Subsequence | 尺取法 | ✦✦✦✧✧ | ✦✦✦✧✧ | 尺取法模板题 |
Jessica’s Reading Problem | 尺取法 | ✦✦✧✧✧ | ✦✦✦✧✧ | |
Face The Right Way | 翻转技巧(一维) | ✦✦✦✧✧ | ✦✦✦✧✧ | 明确翻转规则 |
Fliptile | 翻转技巧(二维) | ✦✦✦✧✧ | ✦✦✦✧✧ | 翻转思想 |
Physics Experiment | 碰撞问题 | ✦✦✦✧✧ | ✦✦✦✧✧ | 类比Ants问题 |
4 Values whose Sum is 0 | 折半枚举 | ✦✦✦✧✧ | ✦✦✦✧✧ | 折半+二分查找 |
超大0-1背包问题 | 折半枚举 | ✦✦✦✧✧ | ✦✦✦✧✧ | 类比V和W比较大的0-1背包 |
Subset | 折半枚举 | ✦✦✦✧✧ | ✦✦✦✧✧ | 牢记折半模板 |