UVA532 - Dungeon Master(裸BFS)
2012-09-07 20:34
232 查看
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=473
没什么意思
View Code
没什么意思
View Code
#include <iostream> #include<cstdio> #include<string.h> using namespace std; char s[31][31][31]; struct node { int x,y,z,num; }q[100001]; int d,p,n,m,o,f[31][31][31],re[7][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}}; void inque(int x,int y,int z) { d++; q[d].x = x; q[d].y = y; q[d].z = z; } int judge(int x,int y,int z) { if(x<1||x>n||y<1||y>m||z<1||z>o) return 0; if(f[x][y][z]) return 0; if(s[x][y][z]=='#') return 0; return 1; } int main() { int i,j,k,a[5]; while(scanf("%d%d%d",&n,&m,&o)!=EOF) { memset(f,0,sizeof(f)); if(n==0&&m==0&&o==0) break; for(i = 1; i <= n ; i++) { getchar(); for(j = 1 ; j <= m ; j++) { for(k = 1; k <= o ; k++) { s[i][j][k] = getchar(); if(s[i][j][k]=='S') { a[1] = i; a[2] = j; a[3] = k; } } getchar(); } } d = 1; p = 0; q[d].x = a[1]; q[d].y = a[2]; q[d].z = a[3]; q[d].num = 0; int flag = 0; while(p!=d) { p++; int tx = q[p].x; int ty = q[p].y; int tz = q[p].z; int tnum = q[p].num; if(s[tx][ty][tz]=='E') { flag = 1; break; } for(i = 0; i < 6 ; i++) { int px = tx+re[i][0]; int py = ty+re[i][1]; int pz = tz+re[i][2]; if(judge(px,py,pz)) { f[px][py][pz] = 1; inque(px,py,pz); q[d].num = q[p].num+1; } } } if(flag) printf("Escaped in %d minute(s).\n",q[p].num); else printf("Trapped!\n"); } return 0; }
相关文章推荐
- UVA 532 Dungeon Master
- UVA 532 - Dungeon Master
- POJ 2251 Dungeon Master /UVA 532 Dungeon Master / ZOJ 1940 Dungeon Master(广度优先搜索)
- UVA 532 - Dungeon Master
- UVA532 Dungeon Master
- UVA 532 - Dungeon Master
- uva 532 Dungeon Master(三维bfs)
- UVA 532 - Dungeon Master
- UVa 532 Dungeon Master( BFS )
- UVA 532- Dungeon Master (BFS)
- uva 532 - Dungeon Master
- UVA 532 - Dungeon Master
- uva 532 Dungeon Master
- uva 532 - Dungeon Master
- uva 532 Dungeon Master(BFS)
- UVa 532 Dungeon Master
- UVA 532 - Dungeon Master
- uva 532 - Dungeon Master
- UVA532 POJ2251 ZOJ1940 Dungeon Master
- [uva-532]Dungeon Master (BFS)