迷宫
作者:
L_566
,
2024-03-16 19:20:17
,
所有人可见
,
阅读 14
#include <bits/stdc++.h>
using namespace std;
#define int long long
int t,n;
int xa,ya,xb,yb;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
const int N=110;
char c[N][N];
bool st[N][N];
void dfs(int xa,int ya)
{
st[xa][ya]=true;
for(int i=0;i<4;i++)
{
int x=xa+dx[i],y=ya+dy[i];
if(x<0||x>=n||y<0||y>=n) continue;
else if(st[x][y]) continue;
else if(c[x][y]=='#') continue;
dfs(x,y);
}
}
signed main()
{
cin>>t;
while(t--)
{
memset(st,0,sizeof st);
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cin>>c[i][j];
}
cin>>xa>>ya>>xb>>yb;
if(c[xa][ya]=='.')
dfs(xa,ya);
if(st[xb][yb]) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}