1怎么入队的?
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,m,cnt,_max;
int rd[N];
bool X[N];
vector<int> pic[N];
queue<int> q;
void topo_sort();
int main(){
int u,v;
cin>>n;
for(int i=1;i<=n;i++){
cin>>u>>m;
if(!X[u]){
X[u]=true;
}
while(m--){
cin>>v;
if(!X[v]){
X[v]=true;
}
pic[u].push_back(v);
rd[v]++;
_max=max(_max,v);
}
}
for(int i=1;i<=_max;i++){
if(!rd[i]&&X[i]){
q.push(i);
cnt++;
}
}
topo_sort();
return 0;
}
void topo_sort(){
while(!q.empty()){
int x=q.front();
cout<<x<<" ";
q.pop();
int len=pic[x].size();
for(int i=0;i<len;i++){
// cout<<"x"<<x<<" "<<pic[x][i]<<" ";
rd[pic[x][i]]--;
if(rd[pic[x][i]]==0){
q.push(pic[x][i]);
cnt++;
}
}
}
if(cnt<n){
cout<<n-cnt;
}
else cout<<"YES";
return ;
}