题目内容:
啊哈磊被困在了迷宫中,你从迷宫入口去救他,试求最短路径
题目解法:深度优先搜索
输入:第一行,输入两个整数,代表迷宫的行列
接下来输入一个n行m列的二维数组,1表示障碍,0表示通路
最后四个整数,前两个代表迷宫入口坐标,后两个代表啊哈磊坐标
输出:
一个整数(最短路径)
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
int n,m,p,q,minstep = 999999; //初始定义999999相当于代表若无法
int a[51][51],book[51][51];
//第一个参数为x坐标,第二个参数为y坐标,第三个参数为步数
void dfs(int x,int y,int step){
int next[4][2] = {
{0,1},{1,0},{0,-1},{-1,0}}; //四种走法,顺时针,上右下左
int tx,ty,k;
//判断是否到达小哈的位置
if (x == p && y == q){
//更新最小值
if (step < minstep)
minstep = step;
return ;
}
for (k = 0;k <= 3;k++){ //for遍历四种走法
tx = x + next[k][0];
ty = y + next[k][1];
if (tx < 1 || tx > n || ty < 1 || ty > n) //