70pts求调
查看原帖
70pts求调
1425641
canghaiwenfuya楼主2024/11/28 11:48
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,in[200010],ans;
vector<int> a[200010];
queue<int> q;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int x;
		scanf("%d",&x);
		int m;
		scanf("%d",&m);
		for(int i=1;i<=m;i++){
			int y;
			scanf("%d",&y);
			a[x].push_back(y);
			in[y]++;
		}
	}
	for(int i=1;i<=n;i++){
		if(in[i]==0){
			q.push(i);
		}
	}
	while(!q.empty()){
		int u=q.front();
		q.pop();
		for(int i=0;i<a[u].size();i++){
			int v=a[u][i];
			in[v]--;
			if(in[v]==0) q.push(v);
		}
	}
	for(int i=1;i<=n+100;i++){
		if(in[i]) ans++;
	}
	if(ans==0) printf("YES");
	else printf("%d",ans);
    return 0;
}
2024/11/28 11:48
加载中...