10,求助
查看原帖
10,求助
793625
Pink_Cut_Tree楼主2023/10/17 20:16
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
const int N=505;
int n,m,ans,to;
int fa[N];
vector<int>v[N];
queue<int>Q;
int main(){
	cin.tie(0)->sync_with_stdio(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>i>>m;
		while(m--){
			cin>>to;
			v[i].push_back(to);
			fa[to]++;
		}
	}
	for(int i=1;i<=n;i++){
		if(fa[i]==0){
			Q.push(i);
		}
	}
	while(!Q.empty()){
		int u=Q.front(); Q.pop();
		for(int i=0;i<v[u].size();i++){
			int son=v[u][i];
			fa[son]--;
			if(fa[son]==0){
				Q.push(son);
			}
		}
	}
	for(int i=1;i<=n;i++){
		if(fa[i]>0){
			ans++;
		}
	}
	if(ans==0){
		cout<<"YES";
	}
	else{
		cout<<ans;
	}
return 0;
}
2023/10/17 20:16
加载中...