tijie
2023-12-29 20:23:12
发布于:浙江
126阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N=2001;
int n,m,vis[N][N];
char a[N][N];
int sx,sy,ex,ey,fx,fy;
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int flag=1;
void dfs(int x,int y){
//vis[x][y]=1;
if(x==fx and y==fy)
{
flag=0;
return;
}
for(int i=0;i<4;++i)
{
int nx=dx[i]+x;
int ny=dy[i]+y;
if(nx>=1 and ny>=1 and nx<=n and ny<=m and !vis[nx][ny] and a[nx][ny]=='.')
{
vis[x][y]=1;
dfs(nx,ny);
vis[x][y]=0;
}
}
}
int main(){
cin>>n>>m;
cin>>sx>>sy>>fx>>fy;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
cin>>a[i][j];
dfs(sx,sy);
if(flag) cout<<"NO";
else cout<<"YES";
return 0;
}
这里空空如也
有帮助,赞一个