题目大意:
小新困在迷宫里了,请求贝利救援。已知迷宫里仅有空地和障碍物,要求贝利以最快的速度找到小新,即求找到小心的最短路径。要保证不能出界哦!
输入:
第一行为几行几列;
下一行开始输出具体的矩阵;
最后一行为贝利的起始位置坐标和小新的位置坐标。
代码实现:
#include<iostream>
#include<cstdio>
using namespace std;
int a[51][51], book[51][51];
int Min=99999999;
int n, m, p, q;
void dfs(int x, int y, int step) {
int nextt[4][2] = { { 0,1 },{ 1,0 },{ 0,-1 },{ -1,0 } };
int tx, ty, k;
//判断是否到达小哈的位置
if (x == p&&y == q) {//每完成一条路径更新一次
if (step < Min)
Min = step;
return;//此处的返回很重要,返回到最近调用函数的地方
}
//枚举4种走法
for (k = 0; k < 3; k++) {
tx = x + nextt[k][0];
ty = y + nextt[k][1];
if (tx<1 || tx>n || ty<1 || ty>