问题 C: 迷宫搜索【队列 搜索 BFS】
题目描述:
迷宫的游戏,相信大家都听过,现在我们用一个n*m的矩阵表示一个迷宫,例如:
S.X.
..X.
..XD
....
其中‘S’表示起点,‘D’表示终点,‘X’表示该位置为墙,不可以走,‘.’表示可以通行。每次只能向“上下左右”四个方向移动一步。
你的任务是判断在x步内(小于等于x),能否从起点走到终点。
输入格式
第一行输入三个数n m x,分别表示迷宫的尺寸和步数。(1 < n,m < 7; 0 < x < 50)
接下来输入一个n*m的矩阵,描述迷宫的状态。
输出格式
判断是否能在x步内从起点走到终点,如果可以,输出“YES”,否则输出“NO”。
输入样例
3 4 5
S.X.
..X.
...D
输出样例
YES */
#include <bits/stdc++.h>
using namespace std;
int n, m, z, f, e;//e是入队的下标 f 是出队的下标
struct point //结构体
{
int x, y, step; // 定义变量 x, y, step. 其中 x, y, 表示 char g[10][10], 里的查找 数据位置。 step 就是步数。
};
int dx[4] = {1, -1, 0, 0};//dx[] + dy[] 代表小人走的4个方向可达的点
int dy[4] &