题解
2025-04-01 21:34:39
发布于:江苏
0阅读
0回复
0点赞
#include<iostream>
using namespace std;
long long n,m,sx,sy,xf,yf;
bool b,vis[45][45];
char a[45][45];
bool dfs(int x,int y){
if(x<1||y<1||x>n||y>m||vis[x][y]==1||a[x][y]=='#'){//出界、撞墙、搜索判断
return 0;
}
vis[x][y]=1;//标记
if(x==xf && y==yf){//重点
return 1;
}
return dfs(x-1,y)||dfs(x+1,y)||dfs(x,y-1)||dfs(x,y+1);//上下左右判断
vis[x][y]=0;//回溯(不会有人会忘了这步吧(悲))
}
int main(){
cin>>n>>m;
cin>>sx>>sy>>xf>>yf;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
b=dfs(sx,sy);
if(b){
cout<<"YES";
}
else{
cout<<"NO";
}
}
这里空空如也
有帮助,赞一个