侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】新 1215 迷宫

Allen Best
2024-05-05 / 0 评论 / 0 点赞 / 35 阅读 / 840 字
温馨提示:
本文最后更新于 2024-05-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include<bits/stdc++.h>
using namespace std;
long long n,xx[6]={0,1,0,-1},yy[6]={1,0,-1,0},h=0,ha,la,hb,lb,k,t;
string a[666];
bool f[666][666];
void dfs(int x,int y){
	if(t){
		return;
	}
	for(int i=0;i<4;i++){
		int nx=x+xx[i],ny=y+yy[i];
		if(nx>=0&&nx<n&&ny>=0&&ny<n&&!f[nx][ny]&&a[nx][ny]=='.'){
			f[nx][ny]=true;
			if(nx==hb&&ny==lb){
				t=1;
				h++;
				cout<<"YES"<<endl;
				break;	
			}
			else dfs(nx,ny);
		}
	}
}
int main(){
	cin>>k;
	for(long long z=1;z<=k;z++){
		t=0;
		cin>>n;
		for(long long i=0;i<n;i++) cin>>a[i];
		cin>>ha>>la>>hb>>lb;
		if(a[ha][la]=='#'||a[hb][lb]=='#'){
			cout<<"NO"<<endl;
			continue;
		}
		else {
			f[ha][la]=true;
			dfs(ha,la);
		}
		if(h==0) cout<<"NO"<<endl;
		for(int i=0;i<111;i++)
			for(int j=0;j<111;j++) f[i][j]=false;
		h=0;
	}
	return 0;
}

0

评论区