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

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

解题思路:三维数组,简单宽搜,注意细节。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 const int maxn = 35; 7 int dir[6][3] = {
0, 0, 1, 0, 0, -1, 0, 1, 0, 0, -1, 0, 8 1, 0, 0, -1, 0, 0}; //上、下 9 int L, R, C, sz, sx, sy;10 char mapp[maxn][maxn][maxn];11 12 struct node{13 int z, x, y, cnt;14 }p, n;15 16 queue
q;17 18 int BFS(int a, int b, int c)19 {20 while(!q.empty()) q.pop(); //清空队列21 mapp[a][b][c] = '#'; //把起始点标记为#22 p.z = a, p.x = b, p.y = c, p.cnt = 0;23 q.push(p);24 25 while(!q.empty())26 {27 p = q.front();28 q.pop();29 30 for(int i = 0; i < 6; i++)31 {32 int zz = p.z + dir[i][0];33 int xx = p.x + dir[i][1];34 int yy = p.y + dir[i][2];35 36 if(mapp[zz][xx][yy] == '#') continue; //走过的或不能走的路就进行下一次循环37 if(mapp[zz][xx][yy] == 'E') return p.cnt + 1; //碰到‘E’就返回,记住加138 mapp[zz][xx][yy] = '#'; 39 n.z = zz, n.x = xx, n.y = yy, n.cnt = p.cnt + 1;40 q.push(n);41 }42 }43 return -1;44 }45 46 int main()47 {48 char str[maxn];49 while(~scanf("%d %d %d", &L, &R, &C) && (L || R || C))50 {51 memset(mapp, '#', sizeof(mapp));52 for(int i = 1; i <= L; i++)53 {54 for(int j = 1; j <= R; j++)55 {56 scanf("%s", str+1); //这里记住要加1,scanf不吃回车键。57 for(int k = 1; k <= C; k++)58 {59 mapp[i][j][k] = str[k];60 if(mapp[i][j][k] == 'S') sz = i, sx = j, sy = k;61 }62 }63 }64 65 int ans = BFS(sz, sx, sy);66 67 if(ans == -1) printf("Trapped!\n"); //说明没有找到出口68 else printf("Escaped in %d minute(s).\n", ans);69 }70 return 0;71 }
View Code

 

转载于:https://www.cnblogs.com/loveprincess/p/4854422.html

你可能感兴趣的文章
mySQL 教程 第7章 存储过程和函数
查看>>
OGG同步Oracle到Kafka(Kafka Connect Handler)
查看>>
算法笔记_056:蓝桥杯练习 未名湖边的烦恼(Java)
查看>>
idea的maven项目无法引入junit
查看>>
jquery实现限制textarea输入字数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
页面置换算法-LRU(Least Recently Used)c++实现
查看>>
如何获取Android系统时间是24小时制还是12小时制
查看>>
fur168.com 改成5917电影
查看>>
PHP上传RAR压缩包并解压目录
查看>>
codeforces global round 1题解搬运
查看>>
python os模块
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
多服务器操作利器 - Polysh
查看>>
[LeetCode] Candy
查看>>
Jmeter学习系列----3 配置元件之计数器
查看>>