并查集 + set 题解 | #第一题#

第一题

https://www.nowcoder.com/practice/7c29cdfa28274c86afc9e88c07448a10

#include <iostream>
#include <set>
using namespace std;
const int N = 1e6+10;
int p[N];
int find(int x){
    if(x != p[x]) p[x] = find(p[x]);
    return p[x];
}
int main(){
    int a, b;
    set<int> s, cnt;
   for(int i = 1; i <= N; i ++) p[i] = i;
    while(cin>>a>>b){
        p[find(a)] = find(b);
        cnt.insert(a);
        cnt.insert(b);
    } 
    for(auto i : cnt){
        s.insert(find(i));
    }
    cout<<s.size();
    return 0;
}

全部评论

相关推荐

我是小红是我:学校换成中南
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务