- 迷宫
你们要的答案,它来了
- @ 2025-8-5 14:42:18
#include<bits/stdc++.h>
using namespace std;
int sx,sy,ex,ey,z,flag,k;
char a[100][100],use[100][100];
void dfs(int x,int y,int o){
use[x][y]='#';
if(x==ex&&y==ey){
flag=1;
return;
}
int nx,ny;
nx=x-1;
ny=y;
if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
dfs(nx,ny,o);
}
nx=x;
ny=y+1;
if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
dfs(nx,ny,o);
}
nx=x+1;
ny=y;
if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
dfs(nx,ny,o);
}
nx=x;
ny=y-1;
if(!(nx<0||nx>=o||ny<0||ny>=o)&&use[nx][ny]=='.'&&a[nx][ny]=='.'){
dfs(nx,ny,o);
}
}
int main(){
cin>>k;
for(int e=0;e<k;e++){
for(int q=0;q<100;q++){
for(int w=0;w<100;w++){
use[q][w]='.';
}
}
flag=0;
cin>>z;
for(int i=0;i<z;i++){
for(int j=0;j<z;j++){
cin>>a[i][j];
}
}
cin>>sx>>sy>>ex>>ey;
dfs(sx,sy,z);
if(flag==1&&a[sx][sy]=='.'&&a[ex][ey]=='.') cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 219
- 时间
- ms
- 内存
- MiB
- 难度
- 8
- 标签
- 递交数
- 171
- 已通过
- 27
- 上传者