2659 修建传送门(并查集)

时间: 2024-11-10 admin IT培训

2659 修建传送门(并查集)

2659 修建传送门(并查集)

有n个岛屿,编号1−n,互相之间没有道路,Nod公司准备在这些岛屿之间安装传送门,岛屿a与岛屿b直接如果安装了传送门,则2个岛屿是互通的,如果a与b互通,b与c互通,则a与c也是互通的。
总共有2种操作:
1 a b 表示在a和b之间修建一个传送门。
2 a b 表示询问a和b直接是否互通。
对于操作2 a b,你需要回答Yes或者No,Yes表示a与b之间是互通的,No表示不互通。
输入
第一行:2个数n和m,表示共有n个点,要进行m次操作(1 <= n <= 50000,1 <= m <= 200000)
后面M行:每行3个数1 a b或2 a b。(1 <= a, b <= n)
输出
对于每一个操作2,输出对应的答案,Yes或者No
输入样例
3 6
1 1 2
2 2 3
1 2 1
2 1 3
1 3 1
2 3 1
输出样例
No
No
Yes
联通的放一起

#include<bits/stdc++.h>
using namespace std;
int fa[101010];
int find(int x)
{