[模板]并查集

Posted ycrpro

tags:

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

https://www.luogu.org/problemnew/show/P3367

//据说根本不用按秩合并,随机将x合并到y/y合并到x就可以了

技术分享图片
 1 // luogu-judger-enable-o2
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4  
 5 #define lop(i,a,b) for(register int i = (a); i <= (b); ++i)
 6 #define getchar() (*p1++)
 7 char buf[3000004],*p1=buf;
 8 const int N = 10005;
 9 inline int read(){
10        register int c = getchar(), x = 0;
11        while(!isdigit(c)) c = getchar();
12        while(isdigit(c)) x = (x<<3)+(x<<1)+(c^48), c = getchar();
13        return x;
14 }
15 int n, Q, fa[N], ch[300005]; 
16 
17 inline int find(int x){
18     while(x!=fa[x])x=fa[x]=fa[fa[x]];return x;
19 }
20 
21 int main(){
22     fread(buf, 1, 3000000, stdin);
23     n = read(), Q = read();
24     lop(i,1,n)fa[i]=i;
25     while(Q--){
26         int opt = read(), x = read(), y = read();
27         x = find(x), y = find(y);
28         if(opt == 1) fa[x] = y;
29                 else puts(x==y?"Y":"N");
30     }
31     return 0;
32 }
View Code

 

以上是关于[模板]并查集的主要内容,如果未能解决你的问题,请参考以下文章

Tarjan 模板,高级并查集

并查集题目模板及java代码

并查集模板(洛谷——模板并查集)

并查集模板

带权并查集(含种类并查集)经典模板 例题:①POJ 1182 食物链(经典)②HDU - 1829 A bug's life(简单) ③hihoCoder 1515 : 分数调查(示例代码(代

ybtoj并查集例题1模板并查集