0
已解决
王光裕
资深光能
资深光能
90分代码:
#include<iostream> using namespace std; char map[110][110]; int n,sx,sy,fx,fy,t; int dir[5][2]={{0},{-1,0},{1,0},{0,-1},{0,1}}; bool vis[110][110],flag; void dfs(int x,int y) { if(x==fx&&y==fy) { flag=true; return; } vis[x][y]=true; for(int i=1;i<=4;i++) { int nx=dir[i][0]+x; int ny=dir[i][1]+y; if(nx>=1&&nx<=n&&ny>=1&&ny<=n&&map[nx][ny]=='s'&&vis[nx][ny]==false) dfs(nx,ny); } } int main() { cin>>t; while(t--) { cin>>n; for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) cin>>map[j][k]; cin>>sx>>sy>>fx>>fy; if(map[sx][sy]=='d'||map[fx][fy]=='d') { cout<<"NO"<<endl; continue; } dfs(sx,sy); if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; flag=false; } return 0; }