并查集是不是正解
  • 板块P2835 刻录光盘
  • 楼主Tomle
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/26 12:40
  • 上次更新2024/1/26 15:43:07
查看原帖
并查集是不是正解
942161
Tomle楼主2024/1/26 12:40

28分,code:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,num,f[205],b[205],cnt;
int find(int k){
	if(f[k]==k)return k;
	return f[k]=find(f[k]);
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)f[i]=i;
	for(int i=1;i<=n;i++){
		while(cin>>num,num){
			f[find(i)]=find(num);
		}
	}
	for(int i=1;i<=n;i++){
		if(b[find(i)]==0)cnt++,b[find(i)]=1;
	}
	cout<<cnt;
}
2024/1/26 12:40
加载中...