并查集

#include<stdio.h>
int fa[10000];
int getfather(int x){
  if(x==fa[x]) return x;
  else return fa[x]=getfather(fa[x]);
}
int main(){
   int n,m;
   scanf("%d%d",&n,&m);
   for (int i=1;i<=n;i++) fa[i]=i;
   int zi,xi,yi;
   int t1,t2;
   for (int i=1;i<=m;i++){
    scanf("%d%d%d",&zi,&xi,&yi);
    t1=getfather(xi);
    t2=getfather(yi);
    if(zi==1)
        fa[t1]=t2;
    else {
        if(t1==t2) printf("Y\n");
        else printf("N\n");
    }
   }
return 0;
}

posted @ 2017-11-09 10:24  lmjer  阅读(122)  评论(0编辑  收藏  举报