迷宫之判定
2023-08-16 15:27:26
发布于:广东
#include<iostream>
using namespace std;
int n,m,x1,y1,x2,y2,vis[45][45],flag=0;
char a[45][45];
int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
void dfs(int x,int y){
if(x==x2 && y==y2){
flag=1;
return ;
}
vis[x][y]=1;
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0 && xx<n && yy>=0 && yy<m && a[xx][yy]!='#' && vis[xx][yy]==0){
dfs(xx,yy);
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>a[i];
x1=0;
y1=0;
x2=n-1;
y2=m-1;
dfs(x1,y1);
if(flag)cout<<"YES";
else cout<<"NO";
return 0;
}
这里空空如也
有帮助,赞一个