博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2251 Dungeon Master
阅读量:5067 次
发布时间:2019-06-12

本文共 1775 字,大约阅读时间需要 5 分钟。

题目链接:

 


 

思路:简单BFS,只不过是由二维变成三维。

总结:BFS写起来还是不熟,有点费劲。

AC代码:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int maxn = 40; 8 char map[maxn][maxn][maxn]; 9 int vis[maxn][maxn][maxn];10 int k,n,m;11 int dx[6] = {
0,0,-1,1,0,0};12 int dy[6] = {-1,1,0,0,0,0};13 int dz[6] = {
0,0,0,0,-1,1};14 int ex,ey,ez;15 int sx,sy,sz;16 struct node{17 int x,y,z;18 int dep;19 };20 bool check(int x,int y,int z)21 {22 if(x >= 0 && x < k && y >= 0 && y < n && z >= 0 && z < m) return true;23 else return false;24 }25 int bfs(int i,int j,int k)26 {27 node a,next;28 queue
q;29 vis[i][j][k] = 1;30 a.x = i,a.y = j,a.z = k;31 a.dep = 0;32 q.push(a);33 while(!q.empty())34 {35 a = q.front();q.pop();36 if(a.x == ex && a.y == ey && a.z == ez) return a.dep;37 for(int i = 0;i < 6;i++)38 {39 next = a;40 next.x = a.x + dx[i];41 next.y = a.y + dy[i];42 next.z = a.z + dz[i];43 if(check(next.x,next.y,next.z) && !vis[next.x][next.y][next.z] && map[next.x][next.y][next.z] != '#')44 {45 next.dep = a.dep + 1;46 vis[next.x][next.y][next.z] = 1;47 q.push(next);48 }49 }50 }51 return 0;52 }53 int main()54 {55 while(~scanf("%d%d%d",&k,&n,&m) && (n||m||k))56 {57 for(int i = 0;i < k;i++)58 {59 for(int j = 0;j < n;j++)60 {61 scanf("%s",map[i][j]);62 for(int k = 0;k < m;k++)63 {64 if(map[i][j][k] == 'S')65 {66 sx = i, sy = j,sz = k;67 }68 if(map[i][j][k] == 'E')69 {70 ex = i,ey = j,ez = k;71 }72 }73 }74 }75 memset(vis,0,sizeof(vis));76 int ans = bfs(sx,sy,sz);77 if(ans)78 printf("Escaped in %d minute(s).\n",ans);79 else80 printf("Trapped!\n");81 }82 return 0;83 }

 

转载于:https://www.cnblogs.com/Carered/p/10941254.html

你可能感兴趣的文章
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
作业一
查看>>
AJAX
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
Git的使用--打tag
查看>>
F# 编程 借助 F# 构建 MVVM 应用程序
查看>>
ACFUN切换代码自用。。。
查看>>
网卡流量检测.py
查看>>
【转】Android的权限permission
查看>>
ajax
查看>>
poj1981 Circle and Points 单位圆覆盖问题
查看>>
POP的Stroke动画
查看>>
线程同步机制初识 【转载】
查看>>
Oracle 游标使用全解
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
银行排队问题(详解队列)
查看>>
序列化和反序列化(1)---[Serializable]
查看>>