POJ 2251
来源:互联网 发布:哪个软件扫码出价格 编辑:程序博客网 时间:2024/06/08 09:18
入门广搜,无WA点无坑点。
#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <iostream>#include <queue>using namespace std;const int inf = 100000000;struct point{ int x; int y; int z;};typedef point P;char arr[40][40][40];int sx, sy, sz, gx, gy, gz;int dir[6][3] = {{1, 0, 0}, {0, 1, 0}, {-1, 0, 0}, {0, -1, 0}, {0, 0, 1}, {0, 0, -1}};int vis[40][40][40], l, r, c, flag;void bfs(){ queue<P> que; P tmp1, tmp2; int i, j, k, dx, dy, dz; for(i = 0; i < l; i++){ for(j = 0; j < r; j++){ for(k = 0; k < c; k++){ vis[i][j][k] = inf; } } } vis[sx][sy][sz] = 0; tmp1.x = sx, tmp1.y = sy, tmp1.z = sz; que.push(tmp1); while(!que.empty()){ tmp2 = que.front(); que.pop(); if(tmp2.x == gx && tmp2.y == gy && tmp2.z == gz){ flag = 1; break; } for(i = 0; i < 6; i++){ dx = tmp2.x + dir[i][0]; dy = tmp2.y + dir[i][1]; dz = tmp2.z + dir[i][2]; if(0 <= dx && dx < l && 0 <= dy && dy < r && 0 <= dz && dz < c && arr[dx][dy][dz] != '#' && vis[dx][dy][dz] == inf){ tmp1.x = dx, tmp1.y = dy, tmp1.z = dz; que.push(tmp1); vis[dx][dy][dz] = vis[tmp2.x][tmp2.y][tmp2.z] + 1; } } }return ;}int main(){ int i, j, k; while(scanf("%d %d %d", &l, &r, &c) != EOF){ if(l == 0 && r == 0 && c == 0){ break; } flag = 0; memset(arr, 0, sizeof(arr)); for(i = 0; i < l; i++){ getchar(); for(j = 0; j < r; j++){ for(k = 0; k < c; k++){ scanf("%c", &arr[i][j][k]); } getchar(); } } for(i = 0; i < l; i++){ for(j = 0; j < r; j++){ for(k = 0; k < c; k++){ if(arr[i][j][k] == 'S'){ sx = i, sy = j, sz = k; } if(arr[i][j][k] == 'E'){ gx = i, gy = j, gz = k; } } } } bfs(); if(vis[gx][gy][gz] == inf){ printf("Trapped!\n"); } else{ printf("Escaped in %d minute(s).\n", vis[gx][gy][gz]); } }return 0;}
0 0
- POJ-2251
- POJ 2251
- poj 2251
- poj 2251
- POJ 2251
- poj 2251
- POJ 2251
- POJ 2251
- poj 2251
- poj-2251
- poj 2251
- POJ 2251
- poj 2251
- poj 2251
- poj 2251
- poj 2251
- 2251POJ
- poj-2251
- 如何修复很少重现但能定位的bug?
- 【树状数组】 HDOJ 4638 Group
- 安全测试-威胁建模学习笔记1
- 详解spring事务属性
- Jmeter 快速入门教程(二)--创建简单web测试
- POJ 2251
- jsoup提取连接下载网站图片
- 含有java jar包的项目使用wrapper注册windows服务
- android中checkbox的padding引发的问题
- 抽屉效果--第三方ViewDeck的使用方法
- Jmeter 快速入门教程(三)--添加响应断言
- 整天说高端运维工程师!啥样的才是高端的哇~至今没弄明白
- eclipse 添加Courier New 字体
- C 语言数组自我总结