比赛 9.6 评测结果 AAAAAAAAAA
题目名称 宗教信仰 最终得分 100
用户昵称 健康铀 运行时间 1.046 s
代码语言 C++ 内存使用 3.41 MiB
提交时间 2024-09-06 19:19:31
显示代码纯文本
#include <bits/stdc++.h>   
using namespace std;  
const int MAXN = 50005;  
int fa[MAXN];  
int find(int x) {  
    if (fa[x]!=x) {  
        fa[x]=find(fa[x]);  
    }  
    return fa[x];  
}  
void join(int x, int y) {  
    int rX = find(x);  
    int rY = find(y);  
    if (rX != rY) {  
        fa[rY] = rX;  
    }  
}  
  
int main() {  
    freopen("religion.in","r",stdin);
    freopen("religion.out","w",stdout);
     ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int n, m, i, j;  
    cin>>n>>m;  
    for (i = 1; i <= n; i++) {  
        fa[i]=i;  
    }   
    for (i = 0; i < m; i++) {  
        int x,y;
        cin>>x>>y; 
        join(x,y);  
    }  
    int ans=0;  
    for (i=1;i<=n;i++) {  
//        cout<<i<<" "<<fa[i]<<endl;
        if (find(i)==i) {  
//        cout<<find(i)<<endl;
            ans++;  
        }  
    }  
    cout<<ans<<endl;   
    return 0;  
}