【BFS】逃离地牢(C++)

本文介绍了一个利用宽度优先搜索(BFS)解决的三维地牢逃脱问题。题目描述了贝茜如何在由通道和岩石组成的立方体地牢中寻找从起点到终点的最短路径。输入包含地牢的尺寸和布局,输出是最短时间或无法逃脱的消息。作者分享了代码实现,并提及在处理此类问题时应注意避免数组过大导致的编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description
贝茜被困在了一个三维立体的地牢里,这个地牢是一个立方体,由通道和岩石组成。贝茜只能往东、南、西、北、上、下六个方向走,且每走一步要花费1个单位的时间。现在将地牢的详细布局给你?你能逃出地牢么?如果能的话,最少要花多少时间呢?

Input
第一行包括三个数L R C,分别表示地牢的长宽高。(长宽高不会超过30)
接下来输入L个R*C的矩阵,两个矩阵之间用一个空行隔开,描述地牢的详细情况。其中‘S’表示贝茜的起点,‘E’表示终点,‘.’表示该位置是通道,可以通行,‘#’表示该位置为岩石,不可以通行。
起点终点各只有一个

Output
如果可以达到终点,输入:” Escaped in x minute(s).”,其中x表示最短的时间;如果无法到达终点,输出:“Trapped!”。

Sample Input

3 4 5
S....
.###.
.##..
###.#

#####
#####
##.##
##...

#####
#####
#.###
####E 

Sample Output

Escaped in 11 minute(s).

HINT

这应该是我做过的BFS的题中最简单 难的了,和其他题的思路差不多,就是将二维迷宫变成了个三维迷宫,再就是改一些变量
我做这题时将数组开太大了(我以为三维数组可以开成1000*1000*1000),结果编译错误了
在这里插入图片描述
下面是代码:
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


#include <bits/stdc++.h>
using namespace std;
struct data {
   
	int x,y,z;
};
int n,m,g,qx,qy,qz,zx,zy,zz,ans[58][58][58];
int xxx[7]= {
   0,1,-1,0,0,0,0};
int yyy[7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值