第一部分—语言篇
第一章(程序设计入门)和第二章(循环结构程序设计)
博文链接:算法竞赛入门经典(第2版)—第一章和第二章总结
总结了第一章和第二章的一些有用的知识点。
第三章(数组和字符串)
博文链接:算法竞赛入门经典(第2版)—第三章
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 340 - Master-Mind Hints | 模拟题目 | ✦✦✦✧✧ | ✦✦✦✧✧ | 英文题目,又长又难懂 |
| 1583 - Digit Generator | 打表/预处理 | ✦✦✧✧✧ | ✦✦✧✧✧ | 多种方法 |
| 1584 - Circular Sequence | 字典序 | ✦✦✧✧✧ | ✦✦✦✧✧ | |
| 455 - Periodic Strings | 水题 | ✦✧✧✧✧ | ✦✧✧✧✧ | |
| 227 - Puzzle | 模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 具体细节 |
| 232 - Crossword Answers | 模拟题 | ✦✦✦✧✧ | ✦✦✦✧✧ | 考虑的比较多,注意题意 |
| 1368 - DNA Consensus String | 脑洞 | ✦✦✧✧✧ | ✦✦✧✧✧ | 想法比实现重要 |
| 202 - Repeating Decimals | 模拟题 | ✦✦✦✧✧ | ✦✦✦✧✧ | 数组和string的使用 |
| 10340 - All in All | 水题 | ✦✧✧✧✧ | ✦✧✧✧✧ | |
| 1587 - Box | 脑洞 | ✦✦✧✧✧ | ✦✦✧✧✧ | 想法比实现重要 |
| 1588 - Kickdown | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 重视伪代码的书写 |
| 11809 - Floating-Point Numbers | 打表/数学推导 | ✦✦✦✦✧ | ✦✦✧✧✧ | 大量推导,比较难 |
第四章(递归和函数)
博文链接:算法竞赛入门经典(第2版)—第四章
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 1339 - Ancient Cipher | 水题 | ✦✧✧✧✧ | ✦✧✧✧✧ | 思路转换 |
| 489 - Hangman Judge | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 直接模拟,读懂题意 |
| 133 - The Dole Queue | 模拟题 | ✦✦✧✧✧ | ✦✦✦✧✧ | 双向约瑟夫 |
| 213 - Message Decoding | 模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 题意很难理解,输出格式控制 |
| 512 - Spreadsheet Tracking | 大模拟题 | ✦✦✦✦✧ | ✦✦✧✧✧ | 觉得规定时间内很难做出 |
| 1589 - Xiangqi | 大模拟题 | ✦✦✦✧✧ | ✦✦✦✧✧ | 判断,考虑细节 |
| 201 - Squares | 脑洞 | ✦✦✧✧✧ | ✦✦✧✧✧ | 思维转换 |
| 220 - Othello | 大模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 思路不难,代码量大 |
| 253 - Cube painting | 水题 | ✦✧✧✧✧ | ✦✧✧✧✧ | 思路转换 |
| 1590 IP Networks | 大模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 具体细节 |
| 12108 - Extraordinarily Tired Students | 简单题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 逻辑要清晰 |
| 815 - Flooded! | 模拟/二分搜索 | ✦✦✦✧✧ | ✦✦✦✧✧ | 多种方法 |
第五章(C++与STL入门)
博文链接:算法竞赛入门经典(第2版)—第五章
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 10474 - Where is the Marble? | 排序 | ✦✧✧✧✧ | ✦✧✧✧✧ | |
| 101 - The Blocks Problem | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 有一定难度,思路一定清晰 |
| 10815 - Andy’s First Dictionary | 简单题/set | ✦✧✧✧✧ | ✦✧✧✧✧ | |
| 156 - Ananagrams | set/map | ✦✦✧✧✧ | ✦✦✧✧✧ | 技巧 |
| 12096 - The SetStack Computer | 模拟题 | ✦✦✦✧✧ | ✦✦✦✧✧ | set的使用与ID映射 |
| 540 - Team Queue | 队列 | ✦✦✦✧✧ | ✦✦✦✧✧ | 技巧,多个队列 |
| 136 - Ugly Numbers | 优先队列/素数 | ✦✦✦✧✧ | ✦✦✧✧✧ | 推导 |
| 400 - Unix ls | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 输入输出 |
| 1592 - Database | 大模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | |
| 814 - The Letter Carrier’s Rounds | 大模拟题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 细节较多 |
| 221 - Urban Elevations | 离散化 | ✦✦✦✦✧ | ✦✦✦✧✧ | 离散思想借鉴 |
| 1593 - Alignment of Code | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 处理输入输出 |
| 1594 - Ducci Sequence | 模拟题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 数组传引用 |
| 10935 - Throwing cards away I | 模拟题 | ✦✧✧✧✧ | ✦✧✧✧✧ | 队列模拟 |
| 10763 - Foreign Exchange | 简单题 | ✦✦✦✧✧ | ✦✦✦✧✧ | STL使用 |
| 10391 - Compound Words | 脑洞 | ✦✦✦✧✧ | ✦✦✦✧✧ | 思维转换 |
| 1595 - Symmetry | 简单题 | ✦✦✧✧✧ | ✦✦✧✧✧ | |
| 12100 - Printer Queue | 优先队列 | ✦✦✧✧✧ | ✦✦✧✧✧ | |
| 1596 - Bug Hunt | 大模拟 | ✦✦✦✦✧ | ✦✦✧✧✧ | 难度较多,细节较多 |
第二部分—基础篇
第六章(数据结构基础)
博文链接:算法竞赛入门经典(第2版)—第六章
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 210 - Concurrency Simulator | 大模拟 | ✦✦✦✧✧ | ✦✦✦✧✧ | 双端队列 |
| 514 - Rails | 栈 | ✦✦✧✧✧ | ✦✦✧✧✧ | 注意栈初始化为空 |
| 1442 - Matrix Chain Multiplication | 栈 | ✦✦✧✧✧ | ✦✦✧✧✧ | |
| 11988 - Broken Keyboard | 链表 | ✦✦✧✧✧ | ✦✦✧✧✧ | STL中的list |
| 12657 - Boxes in a Line | 模拟链表 | ✦✦✦✧✧ | ✦✦✧✧✧ | 比较难的模拟题 |
| 679 - Dropping Balls | 二叉树 | ✦✦✦✧✧ | ✦✦✧✧✧ | 思路简化 |
| 122 - Trees on the level | 二叉树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 动态创建 |
| 548 - Tree | 二叉树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 二叉树的重建(中序、后序) |
| 839 - Not so Mobile | 二叉树/递归 | ✦✦✦✧✧ | ✦✦✦✧✧ | 递归思想借鉴 |
| 699 - The Falling Leaves | 二叉树/递归 | ✦✦✦✧✧ | ✦✦✧✧✧ | 递归思想 |
| 572 - Oil Deposits | 水题/DFS | ✦✧✧✧✧ | ✦✧✧✧✧ | 递归思想 |
| 1103 - Ancient Messages | 大模拟 | ✦✦✦✧✧ | ✦✦✧✧✧ | 突破点巧妙 |
| 816 - Abbott’s Revenge | 大模拟/BFS | ✦✦✦✧✧ | ✦✦✦✧✧ | 细节较多、代码量大 |
| 10305 - Ordering Tasks | 拓扑排序 | ✦✦✧✧✧ | ✦✦✦✦✧ | 拓扑排序的两种方法 |
| 10129 - Play on Words | 判断欧拉路径 | ✦✦✧✧✧ | ✦✦✦✧✧ | 方法需要记忆 |
| 10562 - Undraw the Trees | DFS | ✦✦✧✧✧ | ✦✦✧✧✧ | |
| 12171 - Sculpture | BFS/离散化 | ✦✦✦✦✧ | ✦✦✧✧✧ | 思想比较难,离散化 |
| 1572 - Self-Assembly | 拓扑排序 | ✦✦✦✧✧ | ✦✦✧✧✧ | 思想转换为图,比较巧妙 |
| 1599 - Ideal Path | BFS | ✦✦✦✧✧ | ✦✦✦✧✧ | 双向BFS |
| 506 - System Dependencies | 大模拟/拓扑 | ✦✦✦✧✧ | ✦✦✧✧✧ | 细节较多 |
| 11853 - Paintball | 对偶图/DFS | ✦✦✦✧✧ | ✦✦✦✧✧ | 思维转换巧妙 |
| 673 - Parentheses Balance | 简单题/栈 | ✦✧✧✧✧ | ✦✧✧✧✧ | |
| 712 - S-Trees | 二叉树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 观察规律 |
| 536 - Tree Recovery | 二叉树 | ✦✦✧✧✧ | ✦✦✧✧✧ | 二叉树的重建(前序、中序) |
| 439 - Knight Moves | BFS | ✦✧✧✧✧ | ✦✧✧✧✧ | 裸的BFS |
| 1600 - Patrol Robot | BFS | ✦✦✦✧✧ | ✦✦✦✧✧ | BFS变体 |
| 12166 - Equilibrium Mobile | 树 | ✦✦✦✧✧ | ✦✦✧✧✧ | 思维转换巧妙 |
| 10410 - Tree Reconstruction | 树 | ✦✦✦✧✧ | ✦✦✧✧✧ | BFS和DFS重建树 |
| 12118 - Inspector’s Dilemma | 欧拉回路 | ✦✦✦✧✧ | ✦✦✧✧✧ | 欧拉回路变形题 |
第七章(暴力求解法)
博文链接:算法竞赛入门经典(第2版)—第七章(暴力求解)
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 725 - Division | 暴力枚举 | ✦✦✧✧✧ | ✦✦✦✧✧ | 枚举思路的转化 |
| 11059 - Maximum Product | 暴力枚举 | ✦✦✧✧✧ | ✦✦✧✧✧ | 区间枚举 |
| 10976 - Fractions Again?! | 暴力枚举 | ✦✦✧✧✧ | ✦✦✦✧✧ | 缩小枚举范围 |
| 524 - Prime Ring Problem | DFS | ✦✦✧✧✧ | ✦✦✧✧✧ | 简单深搜题 |
| 129 - Krypton Factor | DFS/回溯 | ✦✦✦✧✧ | ✦✦✧✧✧ | 难一些的深搜题 |
| 140 - Bandwidth | 暴力枚举 | ✦✦✧✧✧ | ✦✦✧✧✧ | |
| 10603 - Fill | BFS/隐式图 | ✦✦✦✧✧✧ | ✦✦✦✧✧ | 图的构建转化有难度 |
| 208 - Firetruck | DFS | ✦✦✧✧✧ | ✦✦✧✧✧ | 提前判断 |
| 1601 - The Morning after Halloween | BFS | ✦✦✦✦✧ | ✦✦✧✧✧ | 图的降维 |
| 12325 - Zombie’s Treasure Chest | 枚举 | ✦✦✦✧✧ | ✦✦✧✧✧ | 缩小枚举范围 |
| uva - 11214 | DFS/枚举 | ✦✦✦✧✧ | ✦✦✦✧✧ | 有关皇后问题 |
第八章(高效算法设计)
博文链接:算法竞赛入门经典(第2版)—第八章(高效算法设计)
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 120 - Stacks of Flapjacks | 技巧题 | ✦✦✦✧✧ | ✦✦✧✧✧ | 脑洞 |
| 1605 - Building for UN | 构造题 | ✦✦✧✧✧ | ✦✦✧✧✧ | 直接输出符合题意的构造数据 |
| 1152 - 4 Values whose Sum is 0 | 二分 | ✦✦✧✧✧ | ✦✦✦✧✧ | 二分思想的应用 |
| 11054 - Wine trading in Gergovia | 贪心 | ✦✦✦✧✧ | ✦✦✧✧✧ | 脑洞 |
| 11572 - Unique Snowflakes | 模拟 | ✦✦✦✧✧ | ✦✦✧✧✧ | 脑洞 |
第九章(动态规划)
博文链接:算法竞赛入门经典(第2版)—第九章(动态规划)
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 1025 - A Spy in the Metro | 动态规划 | ✦✦✦✧✧ | ✦✦✧✧✧ | 状态构造 |
| 437 - The Tower of Babylon | 动态规划 | ✦✦✦✧✧ | ✦✦✧✧✧ | 状态构造 |
| 1347 - Tour | 动态规划 | ✦✦✦✧✧ | ✦✦✦✧✧ | 状态构造 |
| 116 - Unidirectional TSP | 动态规划 | ✦✦✦✧✧ | ✦✦✦✦✧ | 路径的存储 |
| 11400 - Lighting System Design | 动态规划 | ✦✦✦✧✧ | ✦✦✧✧✧ | 状态构造 |
| 1625 - Color Length | 动态规划 | ✦✦✦✧✧ | ✦✦✦✧✧ | 状态构造 |
| 11584 - Partitioning by Palindromes | 动态规划 | ✦✦✦✧✧✧ | ✦✦✦✦✧ | 状态构造 |
| 10003 - Cutting Sticks | 动态规划 | ✦✦✦✧✧ | ✦✦✦✦✧ | 容易当成哈夫曼树 |
| 1626 - 括号序列 | 动态规划 | ✦✦✦✦✧ | ✦✦✧✧✧ | 递归打印输出 |
| 10285 - Longest Run on a Snowboard | 动态规划 | ✦✦✧✧✧ | ✦✦✦✧✧ | 简单记忆化搜索 |
| 10118 - Free Candies | 动态规划 | ✦✦✦✧✧ | ✦✦✦✧✧ | 状态构造 |
| 1629 - Cake slicing | 动态规划 | ✦✦✧✧✧ | ✦✦✦✧✧ | 状态构造 |
第十章(数论)
博文链接:算法竞赛入门经典(第2版)—第十章(数论)
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 11582 - Colossal Fibonacci Numbers! | 快速幂乘/斐波那契 | ✦✦✦✧✧ | ✦✦✧✧✧ | 数据类型使用unsigned long long |
| 12169 - Disgruntled Judge | 扩展欧几里得 | ✦✦✦✧✧ | ✦✦✧✧✧ | 公式转换 |
| 10791 - Minimum Sum LCM | 唯一分解定理 | ✦✦✦✧✧ | ✦✦✦✧✧ | |
第十一章(图论)
博文链接:算法竞赛入门经典(第2版)—第十一章(图论)
| 题目名称 | 题目类型 | 题目难度 | 复习指数 | 备注 |
|---|
| 12219 - Common Subexpression Elimination | 树 | ✦✦✦✦✧ | ✦✦✧✧✧ | 递归构建树 |
| 1662 - Brackets Removal | | ✦✦✦✧✧ | ✦✦✧✧✧ | |
| 1395 - Slim Span | 最小生成树/二分 | ✦✦✦✧✧ | ✦✦✦✧✧ | 状态构造 |
| 1151 - Buy or Build | 最小生成树/枚举 | ✦✦✦✧✧ | ✦✦✦✦✧ | |
| 247 - Calling Circles | 判断环 | ✦✦✧✧✧ | ✦✦✧✧✧ | floyd改变条件 |
| 10048 - Audiophobia | 二分/BFS | ✦✦✦✧✧ | ✦✦✦✧✧ | 二分选值 |
| 658 - It’s not a Bug, it’s a Feature! | 隐式图/SPFA | ✦✦✦✧✧ | ✦✦✦✧✧ | 图的构建 |
| 12661 - Funny Car Racing | 最短路径 | ✦✦✦✧✧ | ✦✦✦✦✧ | 边的权值在变化,dijstra变体 |
| 821 - Page Hopping | 最短路径 | ✦✧✧✧✧ | ✦✦✧✧✧ | floyd |
| 10801 - Lift Hopping | 最短路径 | ✦✦✦✧✧ | ✦✦✦✦✧ | 图的构建,floyd |