标签:des style blog color io os ar strong for
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 16748 | Accepted: 6522 |
Description
Input
Output
Escaped in x minute(s).
Trapped!
Sample Input
3 4 5 S.... .###. .##.. ###.# ##### ##### ##.## ##... ##### ##### #.### ####E 1 3 3 S## #E# ### 0 0 0
Sample Output
Escaped in 11 minute(s). Trapped!
题解:
就是很裸的模板题,细心就好。其中‘S‘是起点,‘E’是终点,‘#’不能走。
#include <iostream> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <queue> using namespace std; char map[51][51][51]; int fx[6]= {1,-1,0,0,0,0}; int fy[6]= {0,0,1,-1,0,0}; int fz[6]= {0,0,0,0,1,-1}; struct node { int ans; int x,y,z; }; struct node t,f; int v[51][51][51]; int n,m,k; void bfs(int xx,int yy,int zz) { memset(v,0,sizeof(v)); queue<node>q; t.x=xx; t.y=yy; t.z=zz; t.ans=0; q.push(t); v[t.x][t.y][t.z]=1; while(!q.empty()) { t=q.front(); q.pop(); if(map[t.x][t.y][t.z]==‘E‘) { printf("Escaped in %d minute(s).\n",t.ans); return ; } for(int i=0; i<6; i++) { f.x=t.x+fx[i]; f.y=t.y+fy[i]; f.z=t.z+fz[i]; if(f.x>=0&&f.x<n&&f.y>=0&&f.y<m&&f.z>=0&&f.z<k&&v[f.x][f.y][f.z]==0&&map[f.x][f.y][f.z]!=‘#‘) { v[f.x][f.y][f.z]=1; f.ans=t.ans+1; q.push(f); } } } printf("Trapped!\n"); return ; } int main() { int xx,yy,zz; while(scanf("%d%d%d",&n,&m,&k)!=EOF) { if(n==0&&m==0&&k==0) break; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { scanf("%*c%s",map[i][j]); } } for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { for(int z1=0; z1<k; z1++) { if(map[i][j][z1]==‘S‘) { xx=i; yy=j; zz=z1; break; } } } } bfs(xx,yy,zz); } return 0; }
标签:des style blog color io os ar strong for
原文地址:http://www.cnblogs.com/zhangmingcheng/p/3973598.html