ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基础算法 836.合并集合

2022-05-02 17:02:41  阅读:34  来源: 互联网

标签:836 int scanf d% namespace 算法 集合 find


并查集,使用数组实现,find函数中使用了巧妙的递归

#include<iostream>
using namespace std;

const int N = 100010;
int p[N];

int find(int k){
    if(p[k] != k) p[k] = find(p[k]);
    return p[k];
}

int main(){
    int m,n;
    scanf("%d%d",&m,&n);
    for(int i = 1; i <= m; i++) p[i] = i;
    while(n --){
        char t[2];
        int a, b;
        scanf("%s%d%d",t,&a,&b);
        if(*t == 'M')p[find(a)] = find(b);
        else {
            if(find(a) == find(b)) puts("Yes");
            else puts("No");
        }
    }
    return 0;
}

  

标签:836,int,scanf,d%,namespace,算法,集合,find
来源: https://www.cnblogs.com/bz-2021/p/16216145.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有