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

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

Description - 题目描述

  你被困在一个3D地牢中且继续寻找最短路径逃生!地牢由立方体单位构成,立方体单位中有的会充满岩石。向上下前后左右移动一个单位需要一分钟。你不能向对角线的四个方向移动且迷宫四周环绕着许多岩石。 
  是否可以逃出地牢?如果可以,则需要多少时间? 

Input - 输入  输入的第一行包含一个数,表示地牢的数量。

  每个地牢的描述,其第一行包含三个数L,R和C(均小于等于30)。
  L表示地牢的层数;R和C分别表示每层地牢的行与列的大小。
  随后输入地牢的层数L,每层中包含R行,每行中包含C个字符。
  每个字符表示地牢的一个单元。'#'表示岩石单元,'.'表示空白单元。你的起始位置在点'S',出口为'E'。
  每层地牢的输入后都有一个空行。当L,R和C均为0时,输入结束。Output - 输出  每个迷宫对应一行输出。
  如果可以逃生,则输出如下
Escaped in x minute(s).
  x为最短脱离时间。
  如果无法逃生,则输出如下
Trapped!Sample Input - 输入样例

3 4 5S.....###..##..###.#############.####...###########.#######E1 3 3S###E####0 0 0

Sample Output - 输出样例

Escaped in 11 minute(s).Trapped!   思路:三维迷宫最短逃生路径,使用三维字符数组来存储迷宫信息,(我这里踩了个坑,把三维数组妖魔化了,认为其比二维数组要难很多,其实也就那样),输入多组测试用例首先 找到起点s,用起点s的三维坐标进行广搜,用int型三维数组判断该点是否访问过,遍历每一个点,当该点为终点E时,函数退出。要注意清空队列,初始化记录访问信息的数组。用结构体 存储迷宫信息下标。代码如下:
#include 
#include
#include
#include
#define LL long longconst int max_n = 33;using namespace std;int l, r, c;int dd[6][3]={
1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1};//移动数组int used[max_n][max_n][max_n];//记录访问信息数组char mp[max_n][max_n][max_n];//迷宫信息struct test {
//迷宫下标 int x,y,z; int time;//走到某点所花费的时间};queue
q;//队列,方便进行搜索bool judge(int x, int y,int z)//判断该点下标是否合规{ return x >= 0 && x < r&&y >= 0 && y < c&&z>=0&&z
> mp[t][i][j]; if (mp[t][i][j] == 'S')sz = t, sx = i, sy = j; } } } int su = 0; su = bfs(sz, sx, sy); if (su != 0)printf("Escaped in %d minute(s).\n", su); else printf("Trapped!\n"); while (q.size())q.pop();//清空队列 } return 0;}

 

 

转载于:https://www.cnblogs.com/whocarethat/p/11094191.html

你可能感兴趣的文章
7.31实习培训日志-docker sql
查看>>
c#中使用servicestackredis操作redis
查看>>
ios app 真机crash报告分析
查看>>
CRC标准以及简记式
查看>>
SEO搜索引擎
查看>>
关于本地使用tomcat部署web应用,浏览器自动跳转为https的问题
查看>>
一、Text To Speech
查看>>
Java读取并下载网络文件
查看>>
github上构建自己的个人网站
查看>>
在word中粘贴的图片为什么显示不完整
查看>>
SQL Server 数据库的鼠标操作
查看>>
net软件工程师求职简历
查看>>
总线置顶[置顶] Linux bus总线
查看>>
nullnullHandling the Results 处理结果
查看>>
SQL SERVER BOOK
查看>>
JS基础回顾,小练习(判断数组,以及函数)
查看>>
多任务——进程
查看>>
WCF:如何将net.tcp协议寄宿到IIS
查看>>
WebAPI HelpPage支持area
查看>>
Path元素
查看>>