836. 合并集合(并查集)

Posted qdu-lkc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了836. 合并集合(并查集)相关的知识,希望对你有一定的参考价值。

一共有n个数,编号是1~n,最开始每个数各自在一个集合中。

现在要进行m个操作,操作共有两种:

  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”。

每个结果占一行。

数据范围

1n,m1051≤n,m≤105

输入样例:

4 5
M 1 2
M 3 4
Q 1 2
Q 1 3
Q 3 4

输出样例:

Yes
No
Yes

以上是关于836. 合并集合(并查集)的主要内容,如果未能解决你的问题,请参考以下文章

并查集 C++版本 Python版本

并查集

想要学会并查集吗?看我四十行代码实现它

笔记并查集---无向图处理代码模板及类型题

树的应用——并查集及实现代码

10.合并集合 并查集