5WA......
  • 板块P3395 路障
  • 楼主jyx130320
  • 当前回复1
  • 已保存回复2
  • 发布时间2025/6/26 22:04
  • 上次更新2025/6/27 17:55:08
查看原帖
5WA......
1457323
jyx130320楼主2025/6/26 22:04
#include<bits/stdc++.h>
using namespace std;
struct f{
    int x,y;
};
int n,x1=1,yy=1,x2,y2;
int vis[1005][1005];
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
int s[1005][1005];
vector<f>v;
int bfs(int x,int y){
    int cnt=0;
    queue<f>q;
    q.push({x,y});
    vis[x][y]=1;
    while(!q.empty()){
        f t=q.front();
        int tx=t.x;
        int ty=t.y;
        q.pop();
        if(tx==x2&&ty==y2)return 1;
		for(int i=0;i<4;i++){
			int nx=tx+dx[i];
			int ny=ty+dy[i];
			if(nx<1||nx>n||ny<1||ny>n)continue;
			if(vis[nx][ny])continue;
			if(s[nx][ny]==1)continue;
			q.push({nx,ny});
			vis[nx][ny]=1;
            cnt++;
            if(cnt<=v.size())s[v[cnt].x][v[cnt].y]=1;
		}
    }
    return -1;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=n;i++){
            int x,y;
            cin>>x>>y;
            v.push_back({x,y});
        }
        x2=n;
        y2=n;
        if(bfs(x1,yy))cout<<"Yes\n";
        else cout<<"No\n";
        memset(s,0,sizeof(s));
        memset(vis,0,sizeof(vis));
    }
    return 0;
}

尸首

2025/6/26 22:04
加载中...