题目链接
时间:850ms。
#include<bits/stdc++.h>
using namespace std;
int a,b,c,i,n,m;
int f[10010];
int find(int a){
if(f[a]==a)
return a;
return f[a]=find(f[a]);
}
int main(){
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
f[i]=i;
for(i=1;i<=m;i++){
scanf("%d%d%d",&a,&b,&c);
if(a==1){
if(find(b)==find(c))
continue;
f[find(b)]=c;
continue;
}
if(find(b)==find(c)){
printf("Y\n");
continue;
}
printf("N\n");
}
return 0;
}