站外题求助
  • 板块题目总版
  • 楼主TC1234
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/12/24 20:20
  • 上次更新2023/12/24 22:33:26
查看原帖
站外题求助
786213
TC1234楼主2023/12/24 20:20

本地样例对,测评0分

题目

#include <iostream>
using namespace std;
bool f=false;
int n,sx,sy,ex,ey,nx,ny;
int dx[5]={-1,0,1,0},dy[5]={0,1,0,-1};
int vis[201][201];
char g[201][201];
void dfs(int x,int y){
	if (x==ex&&y==ey){
		f=true;
		return;
	}
	for (int i=0;i<=3;i++){
		nx=x+dx[i];
		ny=y+dy[i];
		if (nx>=1&&nx<=n&&ny>=1&&ny<=n&&g[nx][ny]=='.'&&vis[nx][ny]==0){
			vis[nx][ny]=1;
			dfs(nx,ny);
			vis[nx][ny]=0;
		}
	}
}
int main(){
	int n2;
	cin>>n2;
	for (int b=1;b<=n2;b++){
		cin>>n;
		for (int i=1;i<=n;i++){
			for (int j=1;j<=n;j++){
				cin>>g[i][j];
			}
		}
		cin>>sx>>sy>>ex>>ey;
		if (g[sx][sy]=='#'||g[ex][ey]=='#'){
			cout<<"NO";
			return 0;
		}
		vis[sx][sy]=1;
		dfs(sx,sy);
		if (f){
			cout<<"YES"<<endl;
		}else{
			cout<<"NO"<<endl;
		}
		f=false;
	}
	return 0;
}
2023/12/24 20:20
加载中...