求助
查看原帖
求助
1310428
违规用户名1310428楼主2024/5/3 19:21

18WA

#include<bits/stdc++.h>
using namespace std;
vector<int> t[1000005];
int n,m,c,a,b,d[1000005][2];
queue<int> q,f;
void fun(){
    while(!q.empty()){
        int s=q.front();
        q.pop();
        int df=f.front();
        f.pop();
        for(int i=0;i<t[s].size();i++) {
            int l=t[s][i];
            if(d[l][1-df]==-1){
                d[l][1-df]=d[s][df]+1;
                q.push(l);
                f.push(1-df);
            }
        }
    }
    return;
}
int main() {
    cin>>n>>m>>c;;
    for(int i=1;i<=m;i++) {
        cin>>a>>b;
        t[a].push_back(b);
        t[b].push_back(a);
    }
    memset(d,-1,sizeof(d));
    d[1][0]=0;
    q.push(1);
    f.push(0); 
    fun();
    while(c--){
        cin>>a>>b;
        if(d[a][b%2]<=b)cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}
2024/5/3 19:21
加载中...