RE大佬麻烦看一下?
  • 板块P3395 路障
  • 楼主xfx2011
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/10/10 21:17
  • 上次更新2023/11/2 14:35:07
查看原帖
RE大佬麻烦看一下?
973971
xfx2011楼主2023/10/10 21:17
#include<bits/stdc++.h>
using namespace std;
const int maxn=1001;
int a[maxn],b[maxn],c=0;
struct xfx2011{
	int x,y,step;
}q[maxn*maxn];
int vis[maxn][maxn];
bool p=false;
	int n;
int d[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
void bfs(int sx,int sy,int ex,int ey){
	c=0;
	memset(vis,0,sizeof(vis));
	int head=1,tail=1;
	q[tail].x=sx;
	q[tail].y=sy;
	q[tail].step=0;
	tail++;
	while(head<tail){
		int x0=q[head].x;
		int y0=q[head].y;
		int step=q[head].step;
		if(x0==ex&&y0==ey){
			cout<<"Yes\n";
			p=true;
		}
		if(c>0){
			vis[a[c]-1][b[c]-1]=1;
		}
		c++;
		for(int i=0;i<4;i++){
			int nx=x0+d[i][0];
			int ny=y0+d[i][1];
			if(nx>=0&&nx<n&&ny>=0&&ny<n&&vis[nx][ny]!=1){
				q[tail].x=nx;
				q[tail].y=ny;
				q[tail].step=step+1;
				vis[nx][ny]=1;
				tail++;
			}
		} 
		head++;
	}
}
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		p=false;
		scanf("%d",&n);
		for(int i=1;i<=2*n-2;i++) scanf("%d %d",&a[i],&b[i]);
		bfs(0,0,n-1,n-1);
		if(p==false) cout<<"No\n";
	}
	return 0;
} 

RE样例过了 RE

2023/10/10 21:17
加载中...