比赛 9.6 评测结果 WWWWWWWWWW
题目名称 宗教信仰 最终得分 0
用户昵称 KKZH 运行时间 1.014 s
代码语言 C++ 内存使用 5.37 MiB
提交时间 2024-09-06 21:52:58
显示代码纯文本
    #include <bits/stdc++.h>
    using namespace std;
    int n,f[500010],m,a,b,ans;
    int find(int x){
    	if(f[x]==x){
    		return x;
    	}else{
    		return f[x]=find(f[x]);
    	}
    }
    void w(int x,int y){
    	int tx=find(x);
    	int ty=find(y);
    	f[tx]=ty;
    }
    int main(){
    	freopen("religion.in","r",stdin);
    	freopen("religion.out","w",stdout);
    	cin>>n;
    	for(int i=1;i<=500010;i++){
    		f[i]=i;
    	}
    	cin>>m;
    	for(int i=1;i<=m;i++){
    		scanf("%d%d",&a,&b);
    		if(find(a)!=find(b)){
    			w(a,b);
    		}
    	}
    	for(int i=1;i<=n;i++){
    		if(f[i]==i){
    			ans++;
    		}
    	}
    	cout<<ans;
    }