
枚举与搜索
qcwlmqy
我很懒,所以不写
展开
-
Acm枚举 详细整理 [SCOI2005]扫雷 、Colorful Slimes、Atcoder Shorten Diameter
枚举acm做题的过程中,遇到枚举类型的题目,往往不是枚举所有的情况枚举类型题目往往通过枚举关键值,而决定其他的值在做枚举类型的题目时,寻找决定答案的关键值是最重要的[SCOI2005]扫雷分析这道题看似每个格子是否有雷都有0,1两种情况,然后210002^100021000的复杂度成功爆炸但根据扫雷的规则,对于第二列的每个b[i]b[i]b[i],只要知道第一列a[i−1],a[i]...原创 2019-07-24 21:15:46 · 235 阅读 · 0 评论 -
floodfill算法(洪水漫盖法、种子填充法) UVA572、HDU 5319、HDU 4574
floodfill找到一个未被访问过的需要填充的点,以这个点为起点向四周扩展直至边界,填充次数即为连通块数UVA572 Oil Deposits题意输入多个m行n列的矩阵,用0 0表示输入结束。找出有多少块石油区域用“@”代表石油假如两个“@”在横,竖或对角线上相邻,就说它们位于同一区域对于每个输入,输出一个数表示有几个石油区域。分析每次选择@向八个方向递归填充即可,将已经勘探...原创 2019-07-25 10:22:23 · 370 阅读 · 0 评论 -
BFS 题目整理 POJ2251、HDU1429、POJ3182、USACO06、UVA10047 The Monocycle
BFSPOJ 2251 Dungeon Master题意有一个三维监狱,每一步可以向东,向西,向北,向南,向上,向下移动‘S’为起点,'E’为出口,’#‘为墙,’.'为路分析找到起点,直接bfs即可代码#include <iostream>#include <cstdio>#include <algorithm>#include <q...原创 2019-07-25 11:28:47 · 172 阅读 · 0 评论 -
DFS 常用剪枝及题目整理 UVA307 Sticks、POJ1011、HDU1426
DFS剪枝排除等效冗余先搜1再搜2和先搜2再1相同,每次从上个搜索的地方搜起数论优化搜索过程中往往富含数学规律,常见的为搜索结果为某数的约数搜索顺序优化选择优秀的搜索顺序,比如从大到小搜索可行性剪枝搜索过程即可预判最终结果失败记忆化搜索将已搜索到的结果存起来,再次搜索可以直接得到答案最优化剪枝搜索过程即可以预判存在更优解或非最优解上下界剪枝搜索的起点和终点是有限制的...原创 2019-07-25 23:31:57 · 185 阅读 · 0 评论 -
迭代加深搜索 整理 Addition Chains、UVA1283 Infiltration
迭代加深搜索DFS 最大的缺陷在于每个搜索分支深入过深当答案在比较浅的位置的时候花费了过多的时间在无效搜索分支中迭代加深搜索首先深度优先搜索 k 层若没有找到可行解,再深度优先搜索 k+1 层,直到找到可行解为止由于深度是从小到大逐渐增大的,所以当搜索到结果时可以保证搜索深度是最小的本质:迭代加深本质上是通过枚举的手段为 DFS 增加了一个深度条件剪枝Addition C...原创 2019-07-26 01:03:56 · 198 阅读 · 0 评论 -
二分+搜索 HDU6041 I Curse Myself 详解
搜索处理第k小值- 首先二分目标值,比如最小生成树的权重- 统计满足二分值搜索到的符合条件的个数- 检验是否大于等于 kHDU6041 I Curse Myself题意给出一个仙人掌图,令第k小生成树的权重为V(k)V(k)V(k)求∑i=1kV(k)\sum_{i=1}^{k}V(k)∑i=1kV(k)分析用到我们上面的方法,我们在搜索第k小的过程中肯定也能搜索1-k小的所...原创 2019-07-26 17:56:39 · 350 阅读 · 1 评论