- 问答
对对对【
- @ 2026-5-30 10:57:46
using namespace std;
const int N=110;
char a[N][N];
bool f[N][N];
int k,n,sx,sy,ex,ey;
int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};
bool flag;
void dfs(int x,int y){
if(x==ex && y==ey){
flag=true;
return ;
}
f[x][y]=true;
for(int i=0;i<4;i++){
int tx=x+dx[i];
int ty=y+dy[i];
if(tx>=0 && tx<n && ty>=0 && ty<n && a[tx][ty]=='.' && !f[tx][ty]){
dfs(tx,ty);
}
}
}
int main(){
cin>>k;
while(k--){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
cin>>sx>>sy>>ex>>ey;
if(a[sx][sy]=='#' || a[ex][ey]=='#'){
cout<<"NO"<<endl;
continue;
}
flag=false;
memset(f,false,sizeof f);
dfs(sx,sy);
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
0 条评论
目前还没有评论...