题意
一个深L,长C,宽R的三维地方,每移动一个单位需要1s,S是起始位置,E是终点位置,‘#’是墙,‘.’是路,问从S出发最少经过多长时间就到达E处;
分析
典型的广搜,找到起点然后分别向前后左右上下六个方向分别遍历如果能通过的话更新起点再遍历前后左右上下四六个方向知道找到终点E位置。和迷宫不同的是,迷宫是平面上东南西北的移动,相当于在大楼里面的一层楼里找出口,而这个题目在迷宫的基础上又增加了上下的移动,所以要定义一个三维数组定义地图。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
char map[50][50][50];//存地图
int L,R,C,sz,sx,sy;
int brr[50][50][50];//标记该点是否访问
int dir[6][3]= {
{
1,0,0},{
-1,0,0},{
0,1,0},{
0,-1,