因为这个题做了两次犯了两次不同的错误、

第一次用的dfs死活都超时

第二次把定义队列定义在了全局变量的位置,导致连WA了几次、最后找到原因的我真的想一巴掌拍死自己

 #include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int qq=;
int vis[qq][qq][qq];
char map[qq][qq][qq];
int tz,ty,tx,k,n,m,sx,sy,sz;
int dir[][]={-,,,,,,,-,,,,,,,,,,-};
struct point{
int a,b,c;
int step;
};
int check(int z,int y,int x)
{
if(z<||y<||x<||z>=k||y>=n||x>=m||vis[z][y][x]||map[z][y][x]=='#')
return ;
return ;
}
void bfs()
{
queue<point>Q; //就是这个定义队列放在了bfs函数外、导致我WA了很多次特地来提醒自己
memset(vis,,sizeof(vis)); //在写宽搜的时候一定不要犯同样的错误了、
point now,ans;
now.step=;now.a=sz;now.b=sy;now.c=sx;
vis[sz][sy][sx]=;
Q.push(now);
while(!Q.empty()){
ans=Q.front();
Q.pop();
if(ans.a==tz&&ans.b==ty&&ans.c==tx){
printf("Escaped in %d minute(s).\n",ans.step);
return;
}
for(int i=;i<;++i){
now.a=ans.a+dir[i][];
now.b=ans.b+dir[i][];
now.c=ans.c+dir[i][];
if (check(now.a,now.b,now.c))
{
now.step=ans.step+;
vis[now.a][now.b][now.c]=;
Q.push(now);
}
}
}
printf("Trapped!\n");
return;
}
int main()
{
while(~scanf("%d %d %d%*c",&k,&n,&m)&&k)
{
for(int i,j,l=;l<k;++l){
for(j=;j<n;++j){
for(i=;i<m;++i){
map[l][j][i]=getchar();
if (map[l][j][i]=='S'){
sx=i;sy=j;sz=l;
}
else if (map[l][j][i]=='E'){
tx=i;ty=j;tz=l;
}
}
getchar();
}
getchar();
}
bfs();
}
return ;
}

做搜索题目一定要思路清晰、然后是代码的意义要明白的透彻

POJ 2251宽搜、的更多相关文章

  1. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  2. 【BFS】POJ 2251

    POJ 2251 Dungeon Master 题意:有一个地图,三维,走的方向是上下,左右,前后.问你最小步数从起始点走到出口. 思路:三维的BFS,就是多加一组状态,需要细心(不细心如我就找了半个 ...

  3. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  4. POJ1426 Find The Multiple (宽搜思想)

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24768   Accepted: 102 ...

  5. Colorado Potato Beetle(CF的某道) & 鬼畜宽搜

    题意: 一个人在一张大图上走,给你路径与起点,求他走出的矩形面积并.(大概这个意思自行百度标题... SOL: 与其说这是一道图论题不如说是一道生动活泼的STL-vector教学.... 离散化宽搜, ...

  6. POJ 2251 Dungeon Master --- 三维BFS(用BFS求最短路)

    POJ 2251 题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径,移动方向可以是上,下,左,右,前,后,六个方向,每移动一次就耗费一分钟,要求输出最快的走出时间.不同L层 ...

  7. BZOJ_1615_[Usaco2008_Mar]_The Loathesome_Hay Baler_麻烦的干草打包机_(模拟+宽搜/深搜)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1615 一个主动轮带着一些轮子转,轮子带着轮子转,轮子带着轮子转...一个非主动轮只会被一个轮子 ...

  8. 【宽搜】ECNA 2015 D Rings (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: 给你一张N*N(N<=100)的图表示一个树桩,'T'为年轮,'.'为空,求每个'T'属于哪一圈年轮,空 ...

  9. 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N个点M条无向边,(N<=100,M<=N(N-1)/2),起始感染源S,时间T(T<10) ...

随机推荐

  1. 性能监控工具Munin

    实际场景 公司产品需要观察Ubuntu主机性能,以衡量客户现场的产品是否能满足高频使用需求 选型 在比较了诸多工具之后,考虑时间成本因素,用了比较简单的Munin 安装步骤 1. apt-get in ...

  2. css清除浮动各方法与原理

    说到清除浮动的方法,我想网络上应该有不下7,8的方法,介绍这些方法之前,想下为什么清除浮动? 再次回到float这个属性,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联 ...

  3. spring拦截器Interceptor

    在Spring Boot中,拦截器可以分为两种类型: 一是WebMVC,负责拦截请求,类似于过滤器,对用户的请求在Controller接收前进行处理,在Controller处理完成后加工结果等.使用时 ...

  4. Leetcode680.Valid Palindrome II验证回文字符串2

    给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca" 输出: ...

  5. 【JZOJ3213】【SDOI2013】直径

    ╰( ̄▽ ̄)╭ 小 Q最近学习了一些图论知识.根据课本,有如下定义. 树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅有 N-1 条边. 路径:一棵 ...

  6. 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程(一)(2019-08-23)

    目录 使用 Windows 10 WSL 搭建 ESP8266 编译环境并使用 VSCODE 编程 安装前准备 安装 ESP8266 工具链 下载 ESP8266 SDK 编译 花絮 使用 Windo ...

  7. nginx简单使用

    nginx开启./nginx重启./nginx -s reload关闭./nginx -s stop或quit

  8. yum install mysql-devel

    linux系统在装mysql相关的包时要先装mysql-deval,这个包包含mysql的相关配置和环境组件 执行yum install mysql-deval

  9. [React Native] 解析JSON文件

    在编写代码时,开发者有时需要存储一些比较多,在应用程序运行时不需要更改的数据.文件大不便于写在代码中,可以把这些数据存储到JSON文件中. 优点非常明显: 1. 数据存放在单独的文件中,代码精简有条理 ...

  10. hdu1080 LCS变形

    dp[i][j]表示配对的最大值. dp[i-1][j]表示s1[i-1]与'-'配对. dp[i][j-1]表示s2[j-1]与'-'配对. dp[i-1][j-1]表示s1[i-1]与s2[j-1 ...