【算法1-3】暴力枚举

设想一下,你觉得家门口的山非常碍事,下决心发扬“愚公移山”精神,凭借一镐一担打算把山一点一点的移走。虽然精神值得褒奖,而且理论上是可行的,只要给予足够多的时间迟早能做到。但是,实际上并不可能给你那么多时间,所以使用这种办法在有生之年是不可能将山移开的(也许你可以使用更好的办法,比如使用魔法或者设法让天神感动,让他帮你移山)。然而,如果你只是把一个不到半人高的小沙堆给移走,那使用这种方法很快就可以完成了。

算法的世界高深莫测,但是很多问题的解决方法简单而粗暴——就是枚举出所有可能的情况,然后判断或者统计,从而解决问题。在很多程序设计比赛中,有许多比较简单的题目是可以通过枚举暴力解决的;而有的更有具有挑战性的题目虽然有更巧妙的解法,但依然可以使用枚举暴力完成部分任务。

本章将介绍一些枚举与暴力策略,这是非常基础而且重要的,但是对初学者来说还是会有一些挑战。请务必理解本章之前的所有章节后再开始本章的学习。

以上题单的选题来自洛谷编写教材《深入浅出程序设计竞赛 - 基础篇》,并带有详细的教程和讲解,点击下方的图片了解该图书详情。【官方网店绝赞热卖中!】>>>


  1. P2241 - 统计方形(数据加强版)
  2. P2089 - 烤鸡
  3. P1618 - 三连击(升级版)
  4. P1036 - [NOIP 2002 普及组] 选数
  5. P1157 - 组合的输出
  6. P1706 - 全排列问题
  7. P1088 - [NOIP 2004 普及组] 火星人
  8. P3392 - 涂条纹
  9. P3654 - First Step (ファーストステップ)
  10. P1217 - [USACO1.5] Prime Palindromes
  11. P1149 - [NOIP 2008 提高组] 火柴棒等式
  12. P3799 - 小 Y 拼木棒
  13. P2392 - kkksc03考前临时抱佛脚
  14. P2036 - [COCI 2008/2009 #2] PERKET