//要考虑起点终点可能为#的情况
#include<cstdio>
#include<cstring>
#include<iostream>
#define en '\n'
#define m(a,b) memset(a,b,sizeof a)
using namespace std;
const int N=100+5;
int nex[4][2]={
1,0,-1,0,0,-1,0,1};
char ma[N][N];
int sx,sy,ex,ey,n;
int isok(int x,int y){
return x>=1&&x<=n&&y>=1&&y<=n&&ma[x][y]!='#';
}
int dfs(int x,int y)
{
if(x==ex&&y==ey) return 1;
ma[x][y]='#';
for(int k=0;k<=3;++k)
{
int nx=x+nex[k][0],ny=y+nex[k][1];
if(!isok(nx,ny)) continue;
if(dfs(nx,ny)) return 1;
}
return 0;
}
int main()
{
1792:迷宫(只判断是否可达终点 最最简单的搜索)
最新推荐文章于 2022-08-04 12:50:28 发布
这篇博客探讨了一种简单的搜索算法,用于解决1792题目的迷宫问题,主要目标是判断给定的起点能否到达终点。内容涉及路径探索和可达性判断。
摘要由CSDN通过智能技术生成