• 并查集模版


    #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;
    }

  • 相关阅读:
    XTU1199:Number Game
    SSL连接建立过程分析(1)
    JavaScript高级编程II
    PreferenceFragment 使用 小结
    crm使用soap更改下拉框的文本值
    POJ2241——The Tower of Babylon
    四个好看的CSS样式表格
    无论你在哪里上班,请记住下面黄金法则!
    js的for in循环和java里的foreach循环的差别
    具体解释EBS接口开发之物料导入API
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3667312.html
Copyright © 2020-2023  润新知