9分?!
查看原帖
9分?!
752069
DonBeUpLate楼主2023/6/30 15:41
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=200+10;
int n,ans;
int f[maxn][maxn];
int fa[maxn];
void dfs(int x) {
	if(fa[x]==x) return;
	fa[x]=x;
	for(int i=1;i<=f[x][0];i++) dfs(f[x][i]);
}
int main() {
	cin>>n;
	int fr;
	for(int i=1;i<=n;i++) {
		while(cin>>fr) {
			if(fr==0) break;
			f[i][++f[i][0]]=fr;
		}
	}
	for(int i=1;i<=n;i++) {
		if(fa[i]==0) {
			dfs(i);
		}
	}
	for(int i=1;i<=n;i++) if(fa[i]=i) ans++;
	cout<<ans;
	return 0;
}
2023/6/30 15:41
加载中...