全RE求助,悬关*1
查看原帖
全RE求助,悬关*1
754021
fish_love_cat楼主2023/3/26 09:25

RT

#include<bits/stdc++.h>
using namespace std;
int n;
struct wz{
    int x,y,t;
};
int gx[10]={1,0,-1,0};
int gy[10]={0,1,0,-1};
bool f[30005][30005];
int flagx[30005],flagy[30005];
string bfs(){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            f[i][j]=false;
        }
    }
    queue<wz> q;
    wz a;
    a.x=1;
    a.y=1;
    a.t=0;
    q.push(a);
    f[1][1]=true;
    while(!q.empty()){
        a=q.front();
        q.pop();
        if(a.x==n&&a.y==n) return "Yes";
        if(a.t!=0) f[flagx[a.t-1]][flagy[a.t-1]]=true;
        for(int i=0;i<4;i++){
            wz xin;
            xin.x=a.x+gx[i];
            xin.y=a.y+gy[i];
            xin.t=a.t+1;
            if(!f[xin.x][xin.y]) q.push(xin),f[xin.x][xin.y]=true;
        }
    }
    return "No";
}
int main(){
    int t;
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=2*n-2;i++){
            cin>>flagx[i]>>flagy[i];
        }
        cout<<bfs()<<endl;
    }
    return 0;
}

蟹蟹

2023/3/26 09:25
加载中...