为什么全RE
  • 板块P3395 路障
  • 楼主qiaoyushu6
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/9/5 07:47
  • 上次更新2023/10/27 12:30:01
查看原帖
为什么全RE
585865
qiaoyushu6楼主2022/9/5 07:47
#include<bits/stdc++.h>
#define maxn 1000+10
using namespace std;
bool vis[maxn][maxn];
int x=0,y=0,a[maxn][maxn],n,m;
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
bool dfs(int x,int y)
{
	if(x==n && y==n) return true;
	for(int i=0; i<4; i++)
	{
		int ddx=x+dx[i]; int ddy=y+dy[i];
		if(ddx>=1 && ddx<=n && ddy>=1 && ddy<=n)
		{
			if(!a[ddx][ddy] && !vis[ddx][ddy])
			{
				vis[ddx][ddy]=true;
				dfs(ddx,ddy);
				vis[ddx][ddy]=false;
			}
		}
	}
}
int main()
{
    cin>>m;
    while(m--)
    {
		cin>>n;
		for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) {a[i][j]=0; vis[i][j]=1;}
    	for(int i=1; i<=2*n-2; i++)
    	{
    		cin>>x>>y;
    		a[x][y]=1; 
		}
		if(dfs(1,1)) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}
2022/9/5 07:47
加载中...