C++:合并集合(并查集)
合并集合
一共有n个数,编号是1~n,最开始每个数各自在一个集合中。
现在要进行m个操作,操作共有2种:
1.“M a b”,将编号为a和b的两个数的所在的集合合并,如果两个数已经在同一个集合中则忽略这个操作
2.“Q a b”,询问编号为a和b的两个数是否在同一个集合中
输入格式
第一行输入整数n和m
接下来m行,每行包含一个操作指令,指令为"M a b"或"Q a b"的一种
输出格式
对于每个询问指令"Q a b",都要输出一个结果,如果a和b在同一集合内则输出"Yes",否则输出"No"
每个结果占一行
数据范围
1 ≤ n , m ≤ 1 0 5 1\le n,m\le 10^5 1≤n,m≤105
输入样例
4 5
M 1 2
M 3 4
Q 1 2
Q 1 3
Q 3 4
输出样例
Yes
No
Yes
问题分析
并查集(DSU,Disjoint Set Union)
1.将两个集合合并
2.询问两个元素是否在一个集合中
基本原理:每个集合用一棵树来表示。树根的编号就是整个集合的编号。每个结点存储它的父结点,p[x]
表示x
的父结点
问题1:如何判断树根
if(p[x] == x)
问题2:如何求x
的集合编号
while(p[x] != x) x = p[x];
问题3:如何合并两个集合
p[x]
是 x
的集合编号,p[y]
是 y
的集合编号。p[x] = y
优化:路径压缩
AC代码
#include<iostream>
using namespace std;const int N = 1e5 + 10;int n, m;
int p[N];int find(int x) { // 返回 x 的祖宗结点 + 路径压缩if(p[x] != x) p[x] = find(p[x]);return p[x];
}int main() {scanf("%d%d", &n, &m);for(int i = 1; i <= n; i++) p[i] = i;while(m--) {char op[2];int a, b;scanf("%s%d%d", op, &a, &b);if(op[0] == 'M') p[find(a)] = find(b);else {if(find(a) == find(b)) puts("Yes");else puts("No");}}return 0;
}
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
C++:合并集合(并查集)
合并集合 一共有n个数,编号是1~n,最开始每个数各自在一个集合中。 现在要进行m个操作,操作共有2种: 1.“M a b”,将编号为a和b的两个数的所在的集合合并,如果两个数已经在同一个集合中则忽略这个操作 2.“…...
![](https://img-blog.csdnimg.cn/8053b819151947b7ad416333e3019636.png)
【LeetCode】数据结构题解(10)[有效的括号]
有效的括号 😉 1.题目来源👀2.题目描述🤔3.解题思路🥳4.代码展示 😘😘😘😘😘😘😘😘😘😘😘…...
![](https://img-blog.csdnimg.cn/img_convert/130ee871c202570704c7afdb6548d4d6.jpeg)
5G用户逼近7亿,5G发展迈入下半场!
尽管普遍认为5G投资高峰期正在过去,但是从2023年上半年的情况来看,我国5G建设仍在衔枚疾走。 近日举行2023年上半年工业和信息化发展情况新闻发布会上,工信部人士透露,截至今年6月底,我国5G基站累计达到293.7万个&…...
![](https://img-blog.csdnimg.cn/6d06073d96b441b4829129bef53259b1.png)
分布式问题
1. 分布式系统CAP原理 CAP原理:指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitontolerance(分区容忍性),三者不可得兼。 一致性(C…...
![](https://img-blog.csdnimg.cn/45367d108d2c47f7a9813c36e98ed361.png)
教雅川学缠论06-中枢
本系列文章之前讲的内容都只有上升和下降两类趋势,并没有提及盘整,在缠论中,中枢这个新词汇用来定义盘整,中枢: 1.至少由5条线段(或笔)组成 2.中枢是有方向的,中枢左右两侧外面的线&…...
![](https://img-blog.csdnimg.cn/39097404f2224a01b3882068b50b49c9.png)
如何调教让chatgpt读取自己的数据文件(保姆级图文教程)
提示:如何调教让chatgpt读取自己的数据文件(保姆级图文教程) 文章目录 前言一、如何投喂自己的数据?二、调教步骤总结 前言 chatgpt提示不能读取我们提供的数据文件,我们应该对它进行调教。 一、如何投喂自己的数据? 让chatgpt读…...
![](https://www.ngui.cc/images/no-images.jpg)
React Native Camera的使用
介绍 React Native Camera是一个用于在React Native应用中实现相机功能的库。它允许你访问设备的摄像头,并捕获照片和视频。 使用 安装 npm install react-native-camera --save 安装完成后,你需要链接React Native Camera库到你的项目中。可以使用以…...
![](https://img-blog.csdnimg.cn/1b904d840d684bb883edce4eea9595ae.png)
【Matlab】Elman神经网络遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
往期博客👉 【Matlab】BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值 【Matlab】GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值 【Matlab】RBF神经网络遗传算法(RBF-GA)函数极值寻优——非线性函数求极值 本篇博客将主要介绍Elman神…...
![](https://img-blog.csdnimg.cn/img_convert/573b33a8fdbf4a376e765f7cc7ca3db7.jpeg)
@ControllerAdvice注解使用及原理探究 | 京东物流技术团队
最近在新项目的开发过程中,遇到了个问题,需要将一些异常的业务流程返回给前端,需要提供给前端不同的响应码,前端再在次基础上做提示语言的国际化适配。这些异常流程涉及业务层和控制层的各个地方,如果每个地方都写一些…...
![](https://img-blog.csdnimg.cn/d7df5d671b0b49c8805cc5e970ad62de.png)
Error: Design has unresolved cell reference
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 所有的unresolved cell reference问题都是cell信息没读到引起的,在dc/pt里就是db没读到,在ICC2里就是ndm没读。 ICC2中午饭这个问题可以report_design_…...
![](https://img-blog.csdnimg.cn/img_convert/f294273116940ef16ee89596bc6a2bb7.png)
uni-app 封装api请求
前端封装api请求 前端封装 API 请求可以提高代码的可维护性和重用性,同时使得 API 调用更加简洁和易用。 下面是一种常见的前端封装 API 请求的方式: 创建一个 API 封装模块或类:可以使用 JavaScript 或 TypeScript 创建一个独立的模块或类来…...
![](https://img-blog.csdnimg.cn/642ef3be33eb44f98b0440908432e80b.png)
SpringCloud实用篇1——eureka注册中心 Ribbon负载均衡原理 nacos注册中心
目录 1 微服务1.1 微服务的演变1.2 微服务1.3 SpringCloud1.4 小结 2 服务拆分及远程调用2.1 服务拆分2.2 服务拆分案例2.3 实现远程调用2.4 提供者与消费者 3 Eureka注册中心3.1 Eureka的结构和作用3.2 搭建eureka-server3.3 服务注册3.4 服务发现 4 Ribbon负载均衡4.1 负载均…...
![](https://img-blog.csdnimg.cn/img_convert/e0b6fe49d7ecd87c5029e5ba2615ee90.png)
【MySQL】sql字段约束
在MySQL中,我们需要存储的数据在特定的场景中需要不同的约束。当新插入的数据违背了该字段的约束字段,MySQL会直接禁止插入。 数据类型也是一种约束,但数据类型这个约束太过单一;比如我需要存储的是一个序号,那就不可…...
![](https://img-blog.csdnimg.cn/img_convert/93a76a7d5cd9b3210db5453b1e2d4b3e.png)
森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力
森海塞尔为 CUPRA 首款纯电轿跑 SUV – CUPRA Tavascan 注入音频魅力 音频专家森海塞尔携手富有挑战精神的 CUPRA,雕琢时代新贵车型,打造畅快尽兴的驾驶体验 全球知名音频专家森海塞尔与以颠覆传统、充满激情、不甘现状而闻名的汽车品牌 CUPRA 展开合作…...
![](https://www.ngui.cc/images/no-images.jpg)
Java、Android 加解密、编码、压缩、解压缩、Hash
对称加密: 算法:AES (128位)/ DES (56位)....等 加密原理: 原数据--->加密算法(密钥)------>密文 解密原理: 密文---->解密算法(密钥)------>原数据 非对称加密 算法&#…...
![](https://img-blog.csdnimg.cn/2df5cdf9298946c78f0f2aee6d278010.jpeg#pic_center)
11_Pulsar Adaptors适配器、kafka适配器、Spark适配器
2.3. Pulsar Adaptors适配器 2.3.1.kafka适配器 2.3.2.Spark适配器 2.3. Pulsar Adaptors适配器 2.3.1.kafka适配器 Pulsar 为使用 Apache Kafka Java 客户端 API 编写的应用程序提供了一个简单的解决方案。 在生产者中, 如果想不改变原有kafka的代码架构, 就切换到Pulsar的…...
![](https://img-blog.csdnimg.cn/img_convert/d7b2825afcffc9917f5e324f69fc9ab0.png)
jupyter文档转换成markdown
背景 上一篇文章**《如何优雅地用python生成模拟数据》**我就使用jupyter写的,这个真的是万能的,可以插入markdown格式的内容,也可写代码,关键是像ipython一样,可以分步执行。 我可以这样自由的写我的博客内容&#x…...
![](https://img-blog.csdnimg.cn/52667c8e6a4c45cdae7e9ea51283efa5.png)
日志框架及其使用方法
log4j和logBack,同一个人写的,logBack为log4j的升级版,SpringBoot中默认集成logBack 作用:记录软件发布后的一些bug,以及数据是怎样被操作的 传统开发弊端: 1.日志直接输出在控制台,关闭控制台后,日志消…...
![](https://img-blog.csdnimg.cn/6d9f30bba4e841748e198aec38b9149e.png)
ZIG:理解未来编程语言的视角
文章目录 摘要:引言:性能简洁性和模块化避免常见错误和陷阱总结:参考资料📑: 摘要: 本文介绍了新兴编程语言ZIG的目标和特点,包括高性能、简洁性和模块化,并分析了这些特点是如何通过语言设计来…...
![](https://img-blog.csdnimg.cn/img_convert/7b466709b221bb2934139181743ba1bb.gif)
让三驾马车奔腾:华为如何推动空间智能化发展?
上个月,国务院常务会议审议通过了《关于促进家居消费的若干措施》,其中明确提出了“推动单品智能向全屋智能发展创新培育智能消费”“开展数字家庭建设试点”等推动全屋智能拼配发展的建议与方案。 可以说,以整屋为单位的空间智能品类&#x…...
![](https://img-blog.csdnimg.cn/57ee072cba534f45b620689a122d85d7.png)
2022年03月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
一、单选题(共25题,每题2分,共50分) 第1题 已知a“161”,b“16”,c“8”,执行语句da>b and a>c,变量d的值为是? A:0 B:1 C:True D&am…...
![](https://img-blog.csdnimg.cn/b91ca03795284a4488b2a34a94e703be.png#pic_center)
WIN大恒工业相机SDK开发
大恒工业相机SDK开发概览 一、开发环境搭建1、C# 环境配置(VS2019)2、C 环境配置(VS2019)3、python 环境配置(Pycharm) 二、相机二次开发流程三、相机相机属性参数配置四、图像采集单帧采集回调采集 注意事…...
![](https://www.ngui.cc/images/no-images.jpg)
qt qml中各种Layout之间是如何对齐的?
问题描述: qt qml中下一个RowLayout如何对齐顶部到上方的ColumnLayout的底部略低一些间隔的位置? 我们怎么使用achors去锚定位置? 这些都是可以用anchors锚定属性,以及margin来设置的。 解决办法: 要实现将下一个R…...
![](https://www.ngui.cc/images/no-images.jpg)
Immutable.js 进行js的复制
介绍 在提供不可变(Immutable)数据结构的支持。不可变数据是指一旦创建后就不能被修改的数据,每次对数据进行更新都会返回一个新的数据对象,而原始数据保持不变。 使用 日常中我们使用的拷贝 (1) var arr { } ; arr2 arr ; …...
![](https://img-blog.csdnimg.cn/d82ab2a87a99461fa91a01d7c73f7e53.png)
java动态生成excel并且需要合并单元格
java动态生成excel并且需要合并单元格 先上图看一下预期效果 集成poi <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.0.0</version> </dependency> <dependency><…...
![](https://img-blog.csdnimg.cn/1b934526ee52476195f3be8365be53ee.png)
JMeter启动时常见的错误
很多小伙伴在学工具这一块时,安装也是很吃力的一个问题,之前记得有说过怎么安装jmeter这个工具。那么你要启动jmeter的时候,一些粉丝就会碰到如下几个问题。 1.解压下载好的jmeter安装,Windows 平台,双击 jmeter/bin …...
![](https://www.ngui.cc/images/no-images.jpg)
python pandas 排序
Series的排序: Series.sort_values(ascendingTrue, inplaceFalse) 参数说明: ascending:默认为True升序排序,为False降序排序inplace:是否修改原始Series DataFrame的排序: DataFrame.sort_values(by, as…...
![](https://img-blog.csdnimg.cn/606fad8498d74b7bbc38e9c41bfe11e6.png)
前后端分离式项目架构流程复盘之宿舍管理系统
文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux nohup 命令详解
nohup是Linux/Unix系统中非常有用的命令之一。它允许您在后台运行命令或脚本,并且在退出终端会话后仍然保持运行。这对于长时间运行的任务或进程非常有用,特别是当您需要离开终端但希望任务继续运行时。 nohup命令语法 nohup命令的基本语法如下&#x…...
![](https://img-blog.csdnimg.cn/img_convert/2b7431fbecfed7f85876371620f72aa8.png)
VoxWeekly|The Sandbox 生态周报|20230731
欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布,对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容,欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter,并加入 Discord 社区…...
![](https://img-blog.csdnimg.cn/e7193b57fd3c42848de3196edbee87d4.png)
音频文件放到网站空间里生成链接怎么做/打开全网搜索
如上图所示, A与B、A与C、B与D、C与E组件之间是父子关系; B与C之间是兄弟关系;A与D、A与E之间是隔代关系; D与E是堂兄关系(非直系亲属) 针对以上关系我们归类为: 父子组件之间通信 非父子组件之间通信(兄…...
![](/images/no-images.jpg)
ps做好切片后怎么做网站/网络怎么推广自己的产品
Redis是一个开源、基于C语言、基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API。近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了。Redis 3.0的最重要特征是对Redis集群的支持,此外…...
![](https://img-blog.csdnimg.cn/img_convert/72dd548719f0ace4d5f9bca64e1d7715.png)
网站建设前言/网络营销产品的首选产品
登录weblogic管控制台http://127.0.0.1:7001/console,Service->Jdbc->DataSources,点击lock&edit,建立数据源,并测试成功。测试weblogic92配置的jndi数据源的java代码package com.css.test;import java.sql.Connection;…...
![](http://a.hiphotos.baidu.com/baike/s%3D220/sign=f1e4a96cb319ebc4c478719bb227cf79/10dfa9ec8a136327ea05543a918fa0ec09fac7cb.jpg)
网站怎么做百度排名/站长之家alexa排名
itoa将数字转换成指定进制的字符串itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。但是,大多数的编译器(如Windows上的)通常在<stdlib.h>头文件中包含这个函数。 char*itoa(…...
影院网站建设/海外营销方案
Hadoop分组统计计算案例 假如现在有一个用户流量使用情况的日志表,需要对用户的上行流量,下行流量和总流量进行统计;同时还要按照号码的前3位不同进行分别输出。 日志记录如下:(【2】号码,【8】上行流量&…...
![](https://pic002.cnblogs.com/images/2012/282564/2012032916160893.png)
义乌做站外推广的公司/seo优化包括什么
目前我们使用的流程图制作软件大体有RFFLOW、FLOW CHARTING、VISIO三种,可是它们的体积和资源占用情况很大,操作复杂,有没有简单易用不需安装的流程图制作软件呢?下面我给大家推荐几款在线流程图制作工具。 第一款:Gli…...