求助大佬,只拿到了60分
查看原帖
求助大佬,只拿到了60分
1037273
封禁用户楼主2023/8/9 19:39
#include<bits/stdc++.h>
using namespace std;
bool d[1001][1001];
int in[1001],out[1001],num[1001];
int main(){
	int n,m,i,ans=0,a;
	cin>>n;
	for(i=1;i<=n;i++){
		cin>>num[i];
		cin>>out[num[i]];
		for(int j=1;j<=out[num[i]];j++){
			cin>>a;
			d[num[i]][a]=1;
			in[a]++;
		}
	}
	for(int k=1;k<=n;k++){
		for(i=1;i<=n && in[num[i]];i++)
		if(i==n+1) break;
		i=num[i];
		++ans;
		in[i]=-1;
		for(int j=1;j<=n;j++){
			if(d[i][num[j]]){
				d[i][num[j]]=0;
				in[num[j]]--;
			}
		}
	}
	ans=n-ans;
	if(!ans) cout<<"YES";
	else cout<<ans;
	return 0;
}
2023/8/9 19:39
加载中...