zoukankan      html  css  js  c++  java
  • 并查集模版

    #include <stdio.h>
    int bin[50010];

    int findx(int x)
    {
        int r=x;
        while(r!=bin[r])
            r=bin[r];
        int j=x;
        int k;
        while(bin[j]!=r)
        {
           k=bin[j];
           bin[j]=r;
           j=k;
        }
        return r;
    }

    void merge(int x,int y)
    {
        int fx,fy;
        fx = findx(x);
        fy = findx(y);
        if(fx != fy)
            bin[fx] = fy;
    }

    int main()
    {
        int n,m,x,j,y,i,k=0,count;
        bin[0]=0;
        while(scanf("%d%d",&n,&m)!=EOF&&(n||m))
        {
            for(i=1;i<=n;i++)
                bin[i]=i;
            for(j=m;j>0;j--)
            {
                scanf("%d %d",&x,&y);
                merge(x,y);
            }
            for(count=0,i=1;i<=n;i++)
                if(bin[i] == i)
                    count ++;
            k++;
            printf("Case %d: %d ",k,count);

        }
           return 0;
    }

    #include <stdio.h>
    int bin[50010];

    int findx(int x)
    {
        int r=x;
        while(r!=bin[r])
            r=bin[r];
        int j=x;
        int k;
        while(bin[j]!=r)
        {
           k=bin[j];
           bin[j]=r;
           j=k;
        }
        return r;
    }

    void merge(int x,int y)
    {
        int fx,fy;
        fx = findx(x);
        fy = findx(y);
        if(fx != fy)
            bin[fx] = fy;
    }

    int main()
    {
        int n,m,x,j,y,i,k=0,count;
        bin[0]=0;
        while(scanf("%d%d",&n,&m)!=EOF&&(n||m))
        {
            for(i=1;i<=n;i++)
                bin[i]=i;
            for(j=m;j>0;j--)
            {
                scanf("%d %d",&x,&y);
                merge(x,y);
            }
            for(count=0,i=1;i<=n;i++)
                if(bin[i] == i)
                    count ++;
            k++;
            printf("Case %d: %d ",k,count);

        }
           return 0;
    }

  • 相关阅读:
    判断安卓或是IOS
    安卓、IOS内嵌H5的相互通信
    原生js tab选项卡粗略封装
    关于抓包
    vue学习的第一天——vue-router的相关使用
    关于jQuery插件封装的总结
    mvc生成静态页
    C#调用java代码
    汉字转16进制,汉字转10进制
    Model 类型为dynamic或者list<dynamic>
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3667312.html
Copyright © 2011-2022 走看看