问题描述:
迷宫的最短路径
给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。假定从起点开始一定能够走到终点。
输入:10 10
#.######.#
......#..#
.#.##.##.#
.#........
##.##.####
....#....#
.#######.#
....#.....
.####.###.
....#....#
0 1 9 8
输出:
22
代码:
#include<queue>
#include<cstdio>
#include<iostream>
using namespace std;
const int INF = 100000000;
const int MAX = 10086;
int N, M, sx, sy, gx, gy;//迷宫的行数跟列数,以及开始和结束的坐标
char mg[MAX][MAX];
int arr[MAX][MAX];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};