并查集

来源:互联网 发布:linux ntp服务器 源码 编辑:程序博客网 时间:2024/06/15 09:39
#include<cstdio>

const int N=10005;

int p[N],n,m,x,y,z,fx,fy;

int find(int X) {return X==p[X]?X:p[X]=find(p[X]);}

int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++) p[i]=i;
    for (;m--;)
    {
        scanf("%d%d%d",&z,&x,&y);
        fx=find(x);fy=find(y);
        if (z==1) p[fx]=fy;
        else {if (fx^fy) printf("N\n");else printf("Y\n");}
    }
}

0 0
原创粉丝点击