搜索 —— 暴力搜索

【暴力搜索】

暴力搜索,就是将所有情况都举出,并判断其是否符合题目条件。其基本方法是分析题意后,找到一个合适的维度列举每一个元素,以完成题目。

一般主流的 OJ 中,1000ms 的时间限制下可以运行操作数为 10^7 以内的运算(10^6 以内较保险),所以在采用枚举方法之前最好看一下数据范围,确保整个程序的执行操作数不会超过 10^6~10^7 量级。

在编程实现上,暴力枚举需要两个条件,一是枚举的范围要连续,如果枚举范围是离散的,那么一般很难使用 for 循环枚举出所有状态,也就不能保证解的完整性(有时数据看似离散,但实际上可通过预处理使其连续);二是枚举内容需要已知,不能在枚举到某个地方的时候出现未知。

【例题】

1.简单暴力

  1. 连续自然数和(洛谷-P1147):点击这里
  2. 斯诺登的密码(洛谷-P1603):点击这里
  3. 烤鸡(洛谷-P2089):点击这里
  4. Sonya and Matrix(CF-1004D):点击这里
  5. File Name(CF-978B):点击这里
  6. Remove Duplicates(CF-978A):点击这里
  7. Letters(CF-978C):点击这里
  8. Diverse Substring(CF-1037A):点击这里
  9. 最小函数值(信息学奥赛一本通-T1370):点击这里
  10. 权势二进制(51Nod-1413):点击这里
  11. 数三角形(51Nod-2497):点击这里
  12. 后面第一个大于(51Nod-2500):点击这里
  13. 最多分成多少块(51Nod-2502):点击这里
  14. 最长高地(51Nod-2509):点击这里
  15. 重排列(51Nod-2513):点击这里
  16. 小b删列(51Nod-2523):点击这里
  17. Sequence in the Pocket(ZOJ-4104):点击这里
  18. いっしょ / Be Together(AtCoder-2019):点击这里
  19. くんと選挙速報 / AtCoDeer and Election Report (AtCoder-2140):点击这里
  20. ISBN(POJ-2190):点击这里
  21. Derangement(AtCoder-3525):点击这里
  22. Sugar Water(AtCoder-3534):点击这里
  23. Chip Factory(HDU-5536):点击这里
  24. Matryoshka Dolls (Gym-102267C):点击这里
  25. Banana(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 A):点击这里

2.双指针的应用

  1. 和为给定数(信息学奥赛一本通-T1244):点击这里
  2. Snuke Festival(AtCoder-3620):点击这里
  3. Three Parts of the Array(CF-1006C):点击这里
  4. Physics Practical(CF-253B):点击这里

3.其他

  1. Text Editor(CF-253C)(思维+暴力):点击这里
  2. Hydra(CF-244D)(思维+暴力):点击这里
  3. Playing with Permutations(CF-252D)(思维+暴力):点击这里
  4. Purification(CF-330C)(构造+暴力):点击这里
  5. Intense Heat(CF-1003C)(前缀和+暴力):点击这里
  6. 不降的数字(51Nod-2499)(分解数位+暴力):点击这里
  7. Relatively Prime Graph(CF-1009D)(暴力+GCD):点击这里
  8. Close Encounter(POJ-3039)(数学推导+暴力):点击这里
  9. Almost Arithmetic Progression(CF-978D)(数学推导+暴力):点击这里
  10. Elections(CF-1020C)(贪心+暴力):点击这里
  11. Mishka and Contest(CF-999A)(正反两遍暴力):点击这里

你可能感兴趣的:(——搜索——,#,搜索——暴力搜索)