算法基础之合并集合

news/2024/7/15 17:27:12 标签: 算法, c++, 数据结构, 图论

合并集合

  • 核心思想:并查集:

    • 1.将两个集合合并
    • 2.询问两个元素是否在一个集合当中
  • 基本原理:每个集合用一棵树表示 树根的编号就是整个集合的编号
    每个节点存储其父节点,p[x]表示x的父节点

    • 在这里插入图片描述

    •   #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--){
                string op;
                int a,b;
                cin>>op>>a>>b;
                if(op=="M") p[find(a)] = find(b);  //合并操作 将a的父节点改为b
                else{
                    if(find(a) == find(b)) cout<<"Yes"<<endl;
                    else cout<<"No"<<endl;
                }
            }
        }
      

http://www.niftyadmin.cn/n/5217156.html

相关文章

坚鹏:中国工商银行数字化背景下银行公司业务如何快速转型培训

中国工商银行作为全球最大的银行&#xff0c;资产规模超过40万亿元&#xff0c;最近几年围绕“数字生态、数字资产、数字技术、数字基建、数字基因”五维布局&#xff0c;深入推进数字化转型&#xff0c;加快形成体系化、生态化实施路径&#xff0c;促进科技与业务加速融合&…

Java 设计模式之命令模式

命令模式 介绍 命令模式是一种行为类设计模式&#xff0c;核心是将每种请求或操作封装为一个独立的对象&#xff0c;从而可以集中管理这些请求或操作&#xff0c;比如将请求队列化依次执行、或者对操作进行记录和撤销。 命令模式通过将请求的发送者&#xff08;客户端&#x…

mysql数据库基础知识,Mysql的索引和主键区别,数据库的事务的基本特性

文章目录 数据库基础知识Mysql的索引和主键的区别数据库的事务的基本特性 数据库基础知识 为什么要使用数据库 数据保存在内存 优点&#xff1a; 存取速度快 缺点&#xff1a; 数据不能永久保存 数据保存在文件 优点&#xff1a; 数据永久保存 缺点&#xff1a;1&#xf…

BrokerChain

BrokerChain: A Cross-Shard Blockchain Protocol for Account/Balance-based State Sharding 我总感觉这篇文章不完整&#xff0c;缺少一些东西。或者说有些地方并没有详细说。比如状态图的构建&#xff0c;网络重分片的的配置过程。都直接忽略了。 Motivation 1 跨片交易不…

单链表原来是这样实现的!

文章目录 前言1. 链表的概念及结构1.1在链表里&#xff0c;每节“车厢”是什么样的呢&#xff1f;1.2为什么还需要指针变量来保存下⼀个节点的位置&#xff1f; 2. 单链表的实现1. 定义结构体(Seqlist)2. 打印函数(SLTPrint)小插曲&#xff0c;创建节点函数CreateNode3. 尾插函…

Python与ArcGIS系列(十一)SearchCursor方法

目录 0 简述1 SearchCursor检索要素2 where子句筛选3 几何令牌改进SearchCursor性能0 简述 从要素类和图层中以只读的方式进行检索,如获取GDP超过多少以上的城市列表。除此之外,可以进一步地对数据进行where筛选,以获取数据集子集;大数据量的情况下这种方式效率可能较低,…

一些权限方面的思考

一些权限方面的思考 背景说明自定义注解解析自定义注解 背景 鉴权可以通过切面做抽取 说明 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 都是一些伪代码, 不能直接使用, 提供一种思路. 自定义注解 自定义注解: Permission …

CANdelaStudio 使用教程5 编辑DID

文章目录 在哪编辑DID的分类编辑快照数据添加 DID 在哪编辑 DID的分类 编辑快照数据 添加 DID