BFS
better_space
这个作者很懒,什么都没留下…
展开
-
【POJ3278】Catch That Cow
搜索里应用型的题目。 记得考虑临界情况哦。 BFS代码:#include<stdio.h>#include<queue>#include<string.h>#include<algorithm>using namespace std;const int N = 100000;bool vis[N+100];int n,m;struct note { int t;原创 2016-07-29 23:28:05 · 222 阅读 · 0 评论 -
【POJ2251】Dungeon Master
用BFS简单些,无非就是吧二维数组变成三维数组,过程和其他求是否连通的题目大同小异。 坐标变化是6. 不过这题我写的时候直接在标记出压缩成一行判断,老是得不到正确结果,再看了大神的代码后,增加了check()这一判断函数,就奇迹般的ac了,所以以后对于复杂的判断最好写一个判断函数。 另外我发现大神代码的另一个优点,能减少输入后便利取S和E的循环次数,这种小的优化很重要,值得借鉴。(下方代码中“原创 2016-07-29 23:23:33 · 273 阅读 · 0 评论 -
【杭电oj1242】Rescue
在下是菜鸡,一个细节没注意到,非void函数是要有返回值的,可是我就一直没加那个return -1;一直哇,桑心。希望以后我能避免犯这种错误。BFS+优先队列:#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>using namespace std;const int N = 210;char c[N原创 2016-07-29 23:09:43 · 440 阅读 · 0 评论 -
【NYOJ58】最小步数
我的第一道DFS(深度搜索)题目,正是这道题帮我DFS入门。 DFS概念:从分支的最底层开始搜索,层级依次往上,再找本层级的下一级分支。啊是不是太抽象,理解了这道题及代码,基本上就大概理解深搜了,就是这么神奇。 再说本题,你在迷宫里移动,遇0能过,遇1打住。 你只有四个方向可以选择,如果那个方向上的下一个数字为0,那么你可以过去,此时通过的总步数加1,上一个节点标记为1表示来过不能重复走。再以原创 2016-07-28 11:48:37 · 1129 阅读 · 0 评论 -
【POJ1562】Oil Deposits
暂且只用DFS做着,用BFS我老wa“哇。。桑心” DFS:#include<stdio.h>#include<string.h>const int N = 105;int a[N][N],b[N][N];char c[N][N];int px[8]= {0,0,1,1,1,-1,-1,-1};int py[8]= {-1,1,-1,0,1,-1,0,1};int m,n;void原创 2016-07-29 22:58:09 · 285 阅读 · 0 评论