被水题吊打辣..CSP2019T4
  • 板块灌水区
  • 楼主WA_Coding_Duck
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/15 16:36
  • 上次更新2023/11/2 13:37:58
查看原帖
被水题吊打辣..CSP2019T4
936003
WA_Coding_Duck楼主2023/10/15 16:36
#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<=r;++i)

using namespace std;

const int N=1e5+24;

int n,m,qq;
vector<int> linker[N]; 
int disj[N],diso[N];

struct Node{
    int u,dis;
};
list<Node> q;

void bfs()
{
    rep(i,1,n)
        disj[n]=2147483647,
        diso[n]=2147483647;
    diso[1]=0;
    q.push_back((Node){1,0});
    while(!q.empty())
    {
        int u=q.front().u,dis=q.front().dis;
        q.pop_front();
        for(auto v:linker[u])
        {
            if(dis&1)
                if(dis+1<diso[v])
                {
                    diso[v]=dis+1;
                    q.push_back((Node){v,diso[v]});
                }
            else
                if(dis+1<disj[v])
                {
                    disj[v]=dis+1;
                    q.push_back((Node){v,disj[v]});
                }
        }
    }
}

signed main()
{
    cin>>n>>m>>qq;
    rep(i,1,m){
        int u,v;
        cin>>u>>v;
        linker[u].push_back(v);
        linker[v].push_back(u);
    }
    bfs();
    while(qq--){
        int a,l;
        cin>>a>>l;
        if(empty(linker[1]))
            cout<<"No"<<endl;
        if(l&1)
            if(disj[a]>l)
                cout<<"No"<<endl;
            else
                cout<<"Yes"<<endl;
        else
            if(diso[a]>l)
                cout<<"No"<<endl;
            else
                cout<<"Yes"<<endl;
    }
}

0pts P5663

2023/10/15 16:36
加载中...