迷宫之判定
2023-08-06 16:48:41
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
char g[50][50];
bool v[50][50];
int n,m,cnt;
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,-1,1};
void f(int nx,int ny){
for(int i = 0;i < 4;i++){
int tx = nx + dx[i],ty = ny + dy[i];
if(!cnt && g[tx][ty] == '.' && v[tx][ty] == 0 && tx >= 1 && tx <= n && ty >= 1 && ty <= m){
v[tx][ty] = 1;
if(tx == n && ty == m){
cnt = 1;
return;
}
f(tx,ty);
v[tx][ty] = 0;
}
}
}
int main(){
cin>>n>>m;
for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) cin>>g[i][j];
v[1][1] = 1;
f(1,1);
if(cnt) cout<<"YES";
else cout<<"NO";
return 0;
}
这里空空如也
有帮助,赞一个