洛谷 P3367 【模板】并查集
题目
思路
并查集板子
不会的可以看看我的这篇博客
Code
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#define MAXN 10001
using namespace std;
int n,m;
int fa[MAXN];
int find(int x){
return fa[x]==x?x:fa[x]=find(fa[x]);
}
inline int read(){
int x=0;bool f=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return f?-x:x;
}
int main(){
n=read(),m=read();
for(int i=1;i<=n;++i){
fa[i]=i;
}
for(int i=1,opt,x,y;i<=m;++i){
opt=read(),x=read(),y=read();
if(opt==1) fa[find(x)]=find(y);
else{
if(find(x)==find(y)) printf("Y\n");
else printf("N\n");
}
}
return 0;
}