![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深搜广搜专题
pjc缘
这个作者很懒,什么都没留下…
展开
-
bailianoj 4124海贼王之伟大航路
bailianoj 4124海贼王之伟大航路题目大意以第一个岛为起点,最后一个岛为终点。问从第一个岛到最后一个岛所需要的的最短时间是多少。其中岛i到岛i所需花费的时间为0,岛i岛到j的时间和岛j到岛i的时间不等。理解及做法总的思路还是搜索,因为题目N的取值最大为16,暴力做法需要14!,必定超时,所以需要用到记忆化搜索和状态压缩。也没啥好讲的了,具体见代码。AC代码# include <stdio.h># include <string.h># define MIN原创 2021-01-17 16:49:42 · 276 阅读 · 1 评论 -
poj1020Anniversary Cake
POJ1020Anniversary Cake题意:给出一个方形蛋糕,预计将蛋糕分成若干个方形,问是否能保证正好分玩,且能够分出要求的完全蛋糕。能输出KHOOOOB! 不能则输出HUTUTU!理解及做法:因为不能保证随意分能得到完整的蛋糕,所以需要遍历所有可能的分法,就需要用到dfs(深搜),来寻找是否有解决方案。1、先分大的后分小的,提前分掉大部分面积,减少分法灵活性,提高效率。2、不用每个1×1的格子都标记,太慢了,这里把每行用了多少格子记录下来即可。3、每次搜索都优先寻找格子的多的行开始原创 2021-01-12 16:20:10 · 96 阅读 · 0 评论 -
poj1426Find The Multiple
poj1426Find The Multiple[本文转载自:](http://exp-blog.com)问题描述给出一个整数n (1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的 0 或 1 组成。解题思路首先暴力枚举肯定是不可能的 1000ms 想不超时都难,而且枚举还要解决大数问题。解题方法: BFS+同余模定理首先说说朴素的不剪枝搜索方法:我以 n=6 为例首先十进制数,开头第一个数字(最高位)一定不能为0,即最高位必为 1设6的 “0转载 2021-01-05 17:18:23 · 98 阅读 · 0 评论 -
poj3279Fliptile
poj3279Fliptile题目大意及理解大意就是心情愉悦能让奶牛产更多的奶,所以农民搞了个游戏给奶牛玩,奶牛需要把所有黑色朝上的格子变成白色(1代表黑色,0代表白色),因为奶牛的力气比较大,所以在翻动某一个格子时会同时翻转这个格子的邻接格子(上,下左, 右)问怎样翻动可以使奶牛所需翻动次数最少,把每个格子的翻动次数以矩阵的形式输出(只输出最少的)。如果全白时做不到的,输出IMPOSSIBLEM-行数,N-列数因为当第一行的翻动次数确定了,第一行的颜色也就确定了,所以第二行只需要翻动本原创 2021-01-05 15:59:03 · 164 阅读 · 0 评论 -
关于深搜广搜的理解
假设我们从S开始搜索,需要搜索到E.. 表示可通行#表示不可通行什么是深搜深搜一般用于整个图的遍历,它一般用于求多个解的情况,其过程简要来说是对每一个 可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次如上图所示,深搜会得到两条路径分别为向右向下和向下向右在向下。因为需要遍历得到所有解,深搜往往会比广搜需要花费更多的时间什么是广搜广搜一般是用于求图的最短路径,比如迷宫中走到某一点的最短距离,或者某个字符串交换达到目标字符串的最少次数,解的个数一般是为单一的,可以把搜.原创 2021-01-04 22:12:52 · 540 阅读 · 0 评论 -
poj3278Catch That Cow
poj3278Catch That Cow题目大意及理解农夫和奶牛在同一条坐标轴上,问农夫最少走几步可以到达奶牛所在的点(抓到奶牛)农夫每步有3种走法:1.往前走一步 2,往后退一步 3.当前坐标乘以2 ps:这题感觉不太能马上认出来是到广搜题目,然后在做的时候居然同时忘记设置搜索边界和存储是否搜索结果,导致卡了好久。。还有一个注意点:C++里面的this是指针需要用this->成员来调用成员,而Java直接代表类,只需要用this.成员 就可以。AC代码# include &l原创 2021-01-04 21:41:36 · 97 阅读 · 0 评论 -
poj2251Dungeon Master
poj2251Dungeon Master这是一道模板广搜题。题目大意 && 解题思路给出一个最大为30×30×30的迷宫,出发点为S,终点为E,问从S到E最快需要几步(几分钟)。因为题目问的是“最快”,所以用广搜的方法更符合题(最先找到时间最少的答案),考虑到30×30×30的格子比较少。我也试着写了深搜,不出所料超时了。下面附上代码(里面也有一些注释帮助理解~)AC代码# include <stdio.h># include <string.h>#原创 2021-01-04 11:11:13 · 149 阅读 · 0 评论