问题求解策略 (General Problem Solving Techniques)
例题 (Examples)
例题 1 | UVa11292 | The Dragon of Loowater | 排序后用贪心法 | 题解 |
例题 2 | UVa11729 | Commando War | 用贪心法求最优排列;用“相邻交换法”证明正确性 | 题解 |
例题 3 | UVa11300 | Spreading The Wealth | 用代数法进行数学推导;中位数 | 题解 |
例题 4 | LA3708 | Graveyard | 推理;参考系 | 题解 |
例题 5 | UVa10881 | Piotr's Ants | 等效变换;排序 | 题解 |
例题 6 | LA2995 | Image is Everything | 三维坐标系;迭代更新 | |
例题 7 | UVa11464 | Even Party | 部分枚举;递推 | |
例题 8 | LA3401 | Colored Cubes | 部分枚举;贪心 | |
例题 9 | UVa11210 | Chinese Mahjong | 回溯法;以中国麻将为背景 | |
例题 10 | UVa11384 | Help is needed for Dexter | 问题转化;递归 | |
例题 11 | UVa10795 | A Different Task | 汉诺塔问题;递归 | |
例题 12 | LA3971 | Assemble | 二分法;贪心 | |
例题 13 | LA3635 | Pie | 二分法 | |
例题 14 | UVa11520 | Fill the Square | 求字典序最小的解;贪心 | |
例题 15 | LA3902 | Network | 树上的最优化问题;贪心 | |
例题 16 | LA3177 | Beijing Guards | 二分法;贪心 |
入门习题 (Exercises:Beginner)
UVa11636 | Hello World! | |
UVa11039 | Building Designing | |
LA3213 | Ancient Cipher | |
LA3602 | DNA Consensus String | |
UVa10970 | Big Chocolate | 不需要动态规划 |
UVa10340 | All in All | |
UVa10382 | Watering Grass | 经典模型;贪心 |
LA3303 | Songs | 相邻交换法 |
LA5842 | Equipment | 需认真分析题目 |
LA5844 | Leet | 以“火星文”为背景的题目 |
(extra)UVa10012 | How Big Is It? | 用最小的矩形包住n<=8个圆。回溯法 |
(extra)UVa10020 | Minimal coverage | 数轴上有一些线段,选一些总长度尽量少的线段,覆盖区间[0,M] |
(extra)UVa10026 | Shoemaker's Problem | 经典问题。贪心法 |
(extra)UVa10317 | Equating Equations | |
(extra)UVa10318 | Security Panel | |
(extra)UVa10670 | Work Reduction |
中级习题 (Exercises:Intermediate)
UVa10905 | Children's Game | 贪心。容易想错!建议编程并提交 | 题解1 |
LA4254 | Processor | 二分法 | |
UVa11627 | Slalom | 二分法 | |
UVa11134 | Fabled Rooks | 经典问题的变形 | |
UVa11100 | The Trip, 2007 | ||
LA3266 | Tian Ji - The Horse Racing | 有多种方法 | |
UVa11389 | The Bus Driver Problem | 有多种方法 | |
LA4094 | Wonder Team | ||
LA3507 | Keep the Customer Satisfied | 经典问题的变形 | |
LA4324 | Ugly Windows | 注意细节 | |
LA4328 | Priest John's Busiest Day | 认真分析题目 | |
LA4636 | Cubist Artwork | 有趣的题目;逻辑推理 | |
LA4253 | Archery | 枚举。注意特殊情况和精度 | |
LA3667 | Ruler | 搜索 | |
LA3403 | Mobile Computing | 枚举二叉树 | |
LA3621 | Power Calculation | 经典的搜索题目;注意优化 | |
(extra)UVa10037 | Bridge | 有趣的过河问题。分情况讨论;贪心法 | |
(extra)UVa10602 | Editor Nottoobad | ||
(extra)UVa10716 | Evil Straw Warts Live | ||
(extra)UVa11127 | Triple-Free Binary Strings |
提高习题 (Exercises:Advanced)
LA4725 | Airport | |
LA4850 | Installations | |
LA2757 | Supermarket | 经典问题 |
LA5693 | Compress the String | 搜索。需要优化 |
LA5704 | Yummy Triangular Pizza | 回溯法。https://oeis.org/A006534 |
UVa10825 | Anagram and Multiplication | 枚举(需要猜想) |
UVa10639 | Square Puzzle | 回溯法。注意细节 |
LA3406 | Bingo | 注意枚举方式 |
LA2108 | Houses Divided | 搜索;需要优化 |
LA4644 | Hobby on Rails | 比较繁琐的搜索题目 |
(extra)UVa10383 | Queen vs Rook | |
(extra)UVa10411 | Another Game of Tetris | |
(extra)UVa10414 | Denki Blocks | |
(extra)UVa10492 | Optimal Mastermind Strategy | |
(extra)UVa10571 | Products | |
(extra)UVa10605 | Mines For Diamonds | |
(extra)UVa10628 | Quadrills | |
(extra)UVa10632 | Pyramid | |
(extra)UVa10833 | Lunar Forest | |
(extra)UVa11694 | Gokigen Naname | |
(extra)UVa11794 | Dazzling Puzzle | |
(extra)UVa11846 | Finding Seats Again |
高效算法设计 (Designing Efficient Algorithms)
例题 (Examples)
例题 17 | UVa11462 | Age Sort | 排序后用贪心法 |
例题 18 | UVa11078 | Open Credit System | 扫描、维护最大值 |
例题 19 | UVa11549 | Calculator Conundrum | Floyd判圈算法 |
例题 20 | LA3905 | Meteor | 线性扫描;事件点处理 |
例题 21 | LA2678 | Subsequence | 线性扫描;前缀和;单调性 |
例题 22 | LA3029 | City Game | 递推;扫描法 |
例题 23 | LA3695 | Distant Galaxy | 枚举;线性扫描 |
例题 24 | UVa10755 | Garbage heap | 前缀和、降维、递推 |
例题 25 | LA2965 | Jurassic Remains | 中途相遇法 |
入门习题 (Exercises: Beginner)
UVa10125 | Sumsets | 中途相遇法 |
UVa10763 | Foreign Exchange | 快速检索 |
UVa10391 | Compound Words | 字符串检索;哈希表 |
UVa11054 | Wine trading in Gergovia | 扫描法 |
(extra)UVa10324 | Zeroes and Ones |
中级习题 (Exercises:Intermediate)
LA2963 | Hypertransmission | 扫描;维护信息 | |
UVa10827 | Maximum sum on a torus | 前缀和;降维 | |
LA4726 | Average | 数形结合或者单调队列 | |
LA4950 | Selling Land | ||
LA4356 | Fire-Control System | 扫描法 | |
LA2689 | Cricket Field | 在W*H网格里找一个最大空正方形 | |
LA5052 | Genome Evolution | ||
LA3716 | DNA Regions | 利用数学变形或者数形结合 | |
LA4621 | Cav | ||
LA3693 | Balancing the Scale | 用空间换时间 | 题解1 |
LA4294 | Shuffle | 有多种方法 | |
LA5848 | Soju | ||
LA4062 | You are around me ... | ||
(extra)UVa10132 | File Fragmentation | ||
(extra)UVa10691 | Subway | ||
(extra)UVa11589 | Save the President |
提高习题 (Exercises: Advanced)
LA4851 | Restaurant |
LA4629 | Knowledge for the masses |
动态规划 (Dynamic Programming)
例题 (Examples)
例题 26 | LA3882 | And Then There Was One | 递归、问题转化 |
例题 27 | UVa10635 | Prince and Princess | LCS;可转化为LIS |
例题 28 | UVa10891 | Sum | 避免重复计算 |
例题 29 | UVa11825 | Hacker's Crackdown | 集合动态规划;子集枚举 |
例题 30 | UVa10859 | Placing Lampposts | 树上的动态规划 |
例题 31 | LA3983 | Robotruck | 动态规划;滑动窗口优化;单调队列 |
例题 32 | LA4794 | Sharing Chocolate | 集合动态规划、状态精简 |
入门习题 (Exercises: Beginner)
UVa11584 | Partitioning by Palindromes | 入门题目 |
LA4256 | Salesman | 入门题目 |
UVa10534 | Wavio Sequence | 可以转化为经典问题,时间O(nlogn) |
UVa11552 | Fewest Flops | 序列划分模型;状态设计 |
UVa11404 | Palindromic Subsequence | 可以转化为LCS |
LA4731 | Cellular Network | 需要一点概率知识和推理 |
UVa11795 | Mega Man's Missions | 基础的集合动态规划 |
LA4727 | Jump | Joseph问题的变形 |
LA3530 | Martian Mining | 模型简单,但需要减少重复计算 |
UVa10564 | Paths through the Hourglass | 类似01 背包问题 |
UVa10817 | Headmaster's Headache | 集合动态规划 |
LA2038 | Strategic Game | 树上动态规划(基础题) |
LA3363 | String Compression | 字符串动态规划 |
LA2031 | Dance Dance Revolution | 以跳舞机为背景的题目 |
LA4643 | Twenty Questions | 有趣的问题;比较基础的动态规划 |
(extra)UVa10163 | Storage Keepers | |
(extra)UVa10453 | Make Palindrome |
中级习题 (Exercises:Intermediate)
LA4945 | Free Goodies | 也可以贪心,时间效率更高 |
LA4327 | Parade | 模型不难想,但需要优化 |
LA4015 | Cave | 树的动态规划 |
LA4490 | Help Bubu | |
UVa11600 | Masud Rana | 注意状态表示 |
LA4987 | Evacuation Plan | |
LA4613 | Mountain Road | |
LA4614 | Moving to Nuremberg | |
LA4050 | Hanoi Towers | |
LA3305 | Tour | 经典问题 |
LA3412 | Pesky Heroes | 树的动态规划(题目不太好理解) |
LA3679 | Pitcher Rotation | 需要一点优化(精简状态) |
LA3605 | Roommate | |
LA3608 | Period | |
LA3610 | Log Jumping | 可以转化为经典问题 |
LA2221 | Frontier | 涉及到几何(见第四章)的动态规划 |
LA3132 | Minimax Triangulation | |
LA3710 | Interconnect | 注意状态表示 |
LA5088 | Alice and Bob's Trip | 树上的动态规划 |
LA3782 | Bigger is Better | 有多种方法。可以不用高精度 |
(extra)UVa10003 | Cutting Sticks | 经典的动态规划题目。可以用四边形不等式优化 |
(extra)UVa10239 | The Book-shelver's Problem | |
(extra)UVa10271 | Chopsticks | |
(extra)UVa10304 | Optimal Binary Search Tree | |
(extra)UVa10599 | Robots(II) | |
(extra)UVa10604 | Chemical Reaction | |
(extra)UVa10618 | Tango Tango Insurrection | |
(extra)UVa10641 | Barisal Stadium | |
(extra)UVa10671 | Grid Speed | |
(extra)UVa10688 | The Poor Giant | |
(extra)UVa11263 | Nested Rectangles | |
(extra)UVa11400 | Lighting System Design | |
(extra)UVa11578 | Situp Benches | |
(extra)UVa11691 | Allergy Test | |
(extra)UVa11766 | Racing Car Computer | |
(extra)UVa12002 | Happy Birthday |
提高习题(Exercises: Advanced)
LA4394 | String Painter | 序列的动态规划,有一定难度 |
LA4593 | Exclusive Access 2 | |
LA4048 | Fund Management | 注意状态表示 |
LA4625 | Garlands | |
LA3683 | A Scheduling Problem | 树的动态规划 |
LA3637 | The Bookcase | 不太容易想到,且需要优化 |
LA5717 | Peach Blossom Spring | 一类经典题目(最早出现在NWERC2006,但本题数据更强) |
LA3623 | The Best Name for Your Baby | 有难度的动态规划;注意计算顺序 |
LA4002 | The Ultimate Password | 有难度的动态规划;注意计算顺序 |
LA2178 | The Minimum Number of Rooks | 有难度的动态规划 |
LA2923 | Bundling | |
LA2930 | Minimizing Maximizer | 01 原则;数据结构优化动态规划 |
LA3181 | Fixing the Great Wall | |
LA4290 | Easy Climb | 需要优化 |
UVa10559 | Blocks | 重点是设计状态及其转移 |
LA4031 | Integer Transmission | 需要认真思考。可以做到O(n^2)时间。 |
UVa11521 | Compressor | 需要认真思考。很容易写错。 |
(extra)UVa10949 | Kids in a Grid | |
(extra)UVa11193 | Infinix | |
(extra)UVa11194 | Stone Grid | |
(extra)UVa11810 | Gentle ping, to the old King |