迷宫有n行m列的单元格组成(n和m都小于等于50),每个单元格内要么是空地,要么是障碍物。找到一条从迷宫的起点通往迷宫内任意一点的最短路径。
注意:
障碍物是不能走的,也不能走到迷宫之外。
#include <stdio.h>
#include <iostream>
int n, m, p, q,len, min = 99999999;
int a[51][51], book[51][51];
char b[51][3];
void dfs(int x, int y, int step)
{
int next[4][2] = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } };
int tx, ty, k,i,j;
//判断是否到达目的地
if (x == p&&y == q)
{
//更新最小值
if (step < min)
{
len = 0;
min = step;
for (i = 0; i <= 51; i++)
{
for (j = 0; j <= 51; j++)
{
if (book[i][j] == 1)
{
b[len][0] = i + '0'; //不可以直接‘i’,这样存入的就是字符i,而不是i所代表的数值
b[len][1] = ',';
b[len][2] = j + '0';
len++;
}
}
}
}
return ;//这里返回值很重要
}
//枚举四种走法
for (k = 0; k <&