给定一个大小为 N \times MN×M 的迷宫,由通道和墙壁组成。
每一步可以向相邻的上下左右四个方向移动。
请求出起点到终点的最小步数。本题保证从起点一定能走到终点。
# 表示墙壁,不可走。 . 表示通道,可走。S 表示起点。G 表示终点。
输入
- 第一行两个整数 N, M(1 \leq N,M \leq 100)N,M(1≤N,M≤100)
- 接下来 NN 行,每行 MM 个字符,表示迷宫
输出
- 输出一行,表示从起点到终点的最少步数
样例 1
输入
10 10 #S######.# ......#..# .#.##.##.# .#........ ##.##.#### ....#....# .#######.# ....#..... .####.###. ....#...G#
输出
#include<bits/stdc++.h>
using namespace std;
int N, M;
char ch[105][105];
int arr[105][105];
typedef pair<int,int> P;
int qx, qy, zx, zy;
int dx[4] = {0,0,-1,1};
int dy[4] = {-1, 1, 0, 0};
int bfs(){
queue<P> que;
for(int i = 0; i < N; i++){
for(int j = 0; j < M; j++){
arr[i][j] = 0x3f3f3f3f;
}
}
qu
迷宫最短路径算法

本文介绍了一种求解迷宫从起点到终点最短步数的方法,利用广度优先搜索(BFS)算法实现。文章给出了具体实现代码,通过遍历迷宫地图并标记已访问节点的距离来找到最短路径。
最低0.47元/天 解锁文章
1144

被折叠的 条评论
为什么被折叠?



