为什么70分?
#include<bits/stdc++.h>
#define ll long long
#define M 1000001
using namespace std;
int v[M],ft[M],nt[M],idx;
int deg[M],f[M],u[M],cnt,n,a[M];
queue<int>q;
void add(int a,int b){
v[++idx]=b;
nt[idx]=ft[a];
ft[a]=idx;
deg[b]++;
}
void topsort(){
for(int i=0;i<n;i++)
if(deg[a[i]]==0){
q.push(a[i]);//u[i]=1;
}
while(q.size()){
cnt++;
int x=q.front();
q.pop();
for(int i=ft[x];i;i=nt[i]){
int y=v[i];
deg[y]--;
if(!u[y]&°[y]==0){
q.push(y);
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int x,m;
cin>>a[i]>>m;
for(int j=1;j<=m;j++){
int y;
cin>>y;
add(a[i],y);
}
}
topsort();
if(cnt==n) cout<<"YES";
else cout<<n-cnt+1;
return 0;
}