当前位置: 首页 > news >正文

2.数据结构:3.合并集合

原题链接

#include<algorithm>
#include<cstring>
#include<iostream>

using namespace std;

const int N=100010;

int p[N];

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

int main(){
    int n,m;
    cin>>n>>m;
    
    for(int i=1;i<=n;i++){
        p[i]=i;
    }
    
    while(m--){
        char op[2];
        int a,b;
        cin>>op>>a>>b;
        
        if(op[0]=='M'){
            if(find(p[a])!=find(p[b])){
                p[find(a)]=find(b);
            }
        }else{
            if(find(a)==find(b)){
                puts("Yes");
            }else{
                puts("No");
            }
        }
    }
    
    return 0;
}

维护每个点的根节点,合并是修改根节点,查询也是比较根节点。

相关文章:

  • C语言:51单片机 基础知识
  • 不能初始化photoshop,因为暂存盘已满
  • LeetCode 72 - 编辑距离 (Edit Distance)
  • 前端内存泄漏的几种情况及方案
  • 探索Spring Cloud Config:构建高可用的配置中心
  • 分类预测 | Matlab实现CPO-SVM冠豪猪算法优化支持向量机多特征分类预测
  • 【鸿蒙Next】 测试包 签名、打包、安装 整体过程记录
  • 力扣完全平方数279和力扣91解码方法的做题笔记
  • ARM Linux LCD上实时预览摄像头画面
  • VMware Ubuntu 共享目录
  • 【Go语言快速上手】第一部分:数据类型(数组、切片、映射)与控制语句
  • ​豪越科技:智慧园区后勤单位消防安全管理,实时告警与整改闭环
  • LeetCode 202. 快乐数 java题解
  • 【HTML学习笔记基础篇】
  • elpis全栈课程学习之elpis-core学习总结
  • Virtual Box虚拟机安装Mac苹果Monterey和big sur版本实践
  • UI设计——新拟态手机主题锁屏设计分享
  • vmware安装firepower ftd和fmc
  • 计算机毕业设计SpringBoot+Vue.js网上摄影工作室管理系统(源码+文档+PPT+讲解)
  • vector 面试点总结
  • 浙江演艺集团7部作品组团来沪,今夏开启首届上海演出季
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 最高人民法院原副院长唐德华逝世,享年89岁
  • 中国证券业协会修订发布《证券纠纷调解规则》
  • 马上评|这种“维权”已经不算薅羊毛,涉嫌犯罪了