监狱逃脱

简单的BFS搜索

数组清空使我裂开

        memset(vis, 0, sizeof(int));//只清空第一位memset(vis, 0, sizeof(vis));//全部清空memset(vis, 0, 35*35*35*sizeof(int));//清空

AC代码

#include<iostream>
#include<queue>
#include<cstring>
#include<algorithm>
using namespace std;
int L, R, C;
int cnt = 0, ans = 0;
char mp[35][35][35];
int vis[35][35][35];
int to[6][3] = {{0,0,1}, {0,1,0}, {0,0,-1}, {0,-1,0}, {1,0,0}, {-1,0,0}};struct node{int x, y, z;int tot;
};node Ss, Ee;int check(node n){if(n.z >= L || n.x >= R || n.y >= C || n.z < 0 || n.x < 0 || n.y < 0) return 0;else if(vis[n.z][n.x][n.y] == 1) return 0;else if(mp[n.z][n.x][n.y] == '#') return 0;return 1;
}int bfs(){node now, next;queue<node> Q;vis[Ss.z][Ss.x][Ss.y] = 1;Q.push(Ss);while(!Q.empty()){now = Q.front();Q.pop();if(now.z == Ee.z && now.x == Ee.x && now.y == Ee.y){ return now.tot;}for(int i = 0; i < 6; i++){next.z = now.z + to[i][0];next.x = now.x + to[i][1];next.y = now.y + to[i][2];if(check(next)){next.tot = now.tot + 1;vis[next.z][next.x][next.y] = 1;Q.push(next);}}}return 0;
}int main(){while(scanf("%d%d%d", &L, &R, &C) == 3, L+R+C){// 发现结束输入新大陆,好耶!for(int i = 0; i < L; i++){for(int j = 0; j < R; j++){cin >> mp[i][j];for(int k = 0; k < C; k++){if(mp[i][j][k] == 'S') Ss.z = i, Ss.x = j, Ss.y = k, Ss.tot = 0;if(mp[i][j][k] == 'E') Ee.z = i, Ee.x = j, Ee.y = k;}}}ans = 0;// 可有可无//memset(vis, 0, sizeof(int));//debug到裂开memset(vis, 0, sizeof(vis));ans = bfs();if(ans) printf("Escaped in %d minute(s).\n", ans);else cout << "Trapped!\n";}return 0;
}

B-监狱逃脱(BFS)相关推荐

  1. 云南毒贩越狱出逃 监狱安防漏洞都在哪儿?

    这几天,云南越狱事件是刷了一次网友们的屏,近日,多家媒体报道了云南省第一监狱发生的越狱事件.据悉,2017年5月2日上午8时20分,云南省第一监狱七监区在押罪犯张林仓(男,27岁,云南省马龙县人,因运 ...

  2. 脱逃者2 TheEscapists 2 for Mac v2017 – 好玩的冒险游戏

    关于这款游戏 终极监狱沙箱! 全力以赴从世界上最艰苦的监狱中逃脱出来.探索截至目前最大的监狱,该监狱建有多层地板.屋顶.通风口和地下隧道. 你必须遵守监狱的规定,参加点名,做监狱工作并遵循严格的日常安 ...

  3. java 单页面spa_Javascript 与 SPA单页Web富应用

    书单推荐 # <单页Web应用:JavaScript从前端到后端>http://download.csdn.net/detail/epubitbook/8720475 # <MVC的 ...

  4. 哈理工第六届程序设计大赛 G 逃脱(BFS)

    思路:一开始我预处理了每个格子被火燃烧的最短时间然后BFS,WA到不能自理,后来没预处理直接都扔进队列里就A了... #include<bits/stdc++.h> using names ...

  5. 算法题(四十):BFS解决网易2017年笔试题——地牢逃脱

    题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一 ...

  6. 地牢逃脱(BFS(广度优先搜索))

    题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一 ...

  7. 实现BFS之“营救”

    广度优先遍历(Breadth First Search,BFS)是一个分层的搜索过程,没有回退过程,是非递归的. DFS与BFS的小秘密: 1.深度优先搜索算法的思路很简单,比较好理解,但得到的解不是 ...

  8. 1689: 营救小明(bfs+priority_queue逆向思维)

    1689: 营救小明 时间限制: 1 Sec 内存限制: 32 MB [提交][状态][讨论版] 题目描述 一天,小明梦见自己被外星人抓走了,他被关在了一座监狱里,这座监狱形如N*M(N,M<= ...

  9. *【HDU - 1242 】 Rescue (反向dfs,或bfs)

    题干: Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N ...

最新文章

  1. Java培训完可以应用在什么领域
  2. centos7搭建需密码登入的简易ftp服务器
  3. unet图片数据增强_numpy实现深度学习遥感图像语义分割数据增强(支持多波段)
  4. 天津鑫茂工业园区--------------三维虚拟现实系统
  5. 实验吧Web-易-天网管理系统(php弱类型,==号)
  6. 循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...
  7. jQuery——高级(js对象、json、ajax)
  8. 分库分表及其解决方案
  9. Spring MVC——数据检验步骤
  10. 移动时代软件测试团队该往哪里去?
  11. micropython gpio_micropython GPIO
  12. 冗余技术----热备份网关协议
  13. 系统应用和第三方应用跳转
  14. xp系统打印机没有服务器属性设置,xp系统打印机纸张设置的方法
  15. Gram矩阵与卷积网络中的卷积的直观理解
  16. OpenCV实战——基于GrabCut算法的图像分割
  17. 超硬核!兔兔阿里p7学长给的面试知识库
  18. 2022-2027年中国海洋油气开采行业市场全景评估及发展战略规划报告
  19. jsp 模板引擎。无需 tomcat,只需一个 jar 包直接根据 jsp 源文件渲染得到 html 页面
  20. 计算机文本格式在哪,临时文件在哪里?计算机上的临时文件在哪里?

热门文章

  1. 栈与队列1——设计getMin功能的栈
  2. mongodb 安装时错误
  3. mysql 允许远程登录
  4. PHP错误日志,解决不显示不记录日志文件等疑难杂症
  5. openchain 环境部署
  6. 微信协议简单调研笔记
  7. hdu 5945 Fxx and game
  8. BlueTooth: 蓝牙基础知识进阶——链路控制操作
  9. 12.HTML编辑器(CKEditor、CKFinder集成)
  10. glibc和ulibc的区别