WA
查看原帖
WA
1053722
yu_rui楼主2025/1/15 15:34
#include<bits/stdc++.h>
using namespace std;
struct node{ 
    int v,t;
};
vector<int> e[5001];
int rd[5001];
bool vis[5001];
queue<node> q;
int main(){
    int n,k,p;
    cin>>n>>k>>p;
    k-=p;
    if(k<=0){cout<<0;return 0;}
    int x;
    for(int i=1;i<=p;++i){
        cin>>x;
        q.push({x,1});
    }
    int r,v,s;
    cin>>r;
    for(int i=1;i<=r;++i){
        cin>>v>>s;
        for(int j=1;j<=s;++j){
            cin>>p;
            e[p].push_back(v);
            rd[v]++;
        }
    }
    int t;
    while(!q.empty()){
        v=q.front().v;
        if(!vis[v]) vis[v]=1;
        else{q.pop();continue;}
        t=q.front().t;
        for(int i=0;i<e[v].size();++i){
            rd[e[v][i]]--;
            k--;
            if(!k){cout<<t+1;return 0;}
            if(!rd[e[v][i]]) q.push({e[v][i],t+1});
        }
        q.pop();
    }
    cout<<-1;
    return 0;
}

R198347769

2025/1/15 15:34
加载中...