poj 2251 Dungeon Master( bfs )
2013-08-26 17:30
453 查看
题目:http://poj.org/problem?id=2251
简单三维 bfs不解释, 1A, 上代码
简单三维 bfs不解释, 1A, 上代码
#include <iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<stack> #include<queue> #include<iomanip> #include<cmath> #include<map> #include<vector> #include<algorithm> using namespace std; int a,b,c; int vis[50][50][50],G[50][50][50]; int dx[6]={0,0,0,0,-1,1}; int dy[6]={0,0,1,-1,0,0}; int dz[6]={1,-1,0,0,0,0}; struct node { int l,r,c,step; }e,s,pos,next; int bfs(int l,int r,int c) { int i; queue<node>q; next.l=l; next.r=r; next.c=c; next.step=0; vis[l][r][c]=1; q.push(next); while(!q.empty()) { pos=q.front(); q.pop(); for(i=0; i<6; i++) { next.l=pos.l+dx[i]; next.r=pos.r+dy[i]; next.c=pos.c+dz[i]; next.step=pos.step+1; if(!vis[next.l][next.r][next.c]&&G[next.l][next.r][next.c]) { vis[next.l][next.r][next.c]=1; q.push(next); } if(next.l==s.l&&next.r==s.r&&next.c==s.c) return next.step; } } return -1; } int main() { int i,j,k,x; char ch; while(cin>>a>>b>>c&&(a!=0||b!=0||c!=0)) { memset(G,0,sizeof(G)); memset(vis,0,sizeof(vis)); for(i=1; i<=a; i++) for(j=1; j<=b; j++) for(k=1; k<=c; k++) { cin>>ch; if(ch=='.') G[i][j][k]=1; if(ch=='E') { e.l=i; e.r=j; e.c=k; G[i][j][k]=1; } if(ch=='S') { s.l=i; s.r=j; s.c=k; G[i][j][k]=1; } } x=bfs(e.l,e.r,e.c); if(x==-1) cout<<"Trapped!"<<endl; else printf("Escaped in %d minute(s).\n",x); } return 0; }
相关文章推荐
- POJ 2251 Dungeon Master(BFS)
- POJ 2251-Dungeon Master(BFS-三维迷宫)
- POJ2251 - Dungeon Master - 三维bfs搜索
- [BFS]poj 2251 Dungeon Master
- POJ 2251 Dungeon Master(三维bfs)
- POJ 2251 Dungeon Master (三维BFS)
- poj-2251 Dungeon Master 三维BFS
- POJ 2251-Dungeon Master(BFS)
- POJ 2251 Dungeon Master ( BFS )
- 【POJ 2251】Dungeon Master(BFS)
- POJ 2251 Dungeon Master (三维BFS)
- POJ 2251 Dungeon Master(BFS)
- POJ - 2251 Dungeon Master (三维bfs)
- POJ 2251 Dungeon Master (BFS)
- 【POJ 2251】Dungeon Master(bfs)
- POJ-2251 Dungeon Master (BFS)
- POJ 2251 Dungeon Master(简单BFS)
- POJ - 2251 Dungeon Master (简单BFS)
- POJ - 2251 Dungeon Master(三维BFS)
- poj 2251 Dungeon Master (BFS)