• hdu 1856 并查集 求最大的子树含有元素的个数


    这道题数据有点大, 我再次 被 cin>> he  cin<<out 多次超时, 改成 scanf 和 printf  后一次ac . 欲哭无泪啊!

    完全是 并查集 ,模板 ,只是初始化 有点异样, 最后统计 子树元素的个数 。

    #include<iostream>
    #include<stdio.h>
    #include<string>
    #include<string.h>
    #include<map>
    #include<math.h>
    #define N 10000005
    #define M 100005
    using namespace std;
    
    int rank[N];
    int parent[N];
    int sumnum[N];
    int Find(int x)
    {
        if(x== parent[x]) return x;
        return parent[x]=Find(parent[x]);
    }
    void Union(int x, int y)
    {
         int xf=Find(x);
         int yf=Find(y);
         if(rank[xf] > rank[yf])
            parent[yf]=xf;
        else
        {
            parent[xf]=yf;
            if(rank[xf] == rank[yf])
                rank[yf]++;
        }
    }
    int main()
    {
        int m;
        while(scanf("%d",&m)!=EOF)
        {
            int u[M],v[M],num=1;
            int maxnum=0;
            memset(sumnum,0,sizeof(sumnum));
            for(int i=0;i<m;i++)
            {
                scanf("%d%d",&u[i],&v[i]);
                if(u[i] > maxnum) maxnum = u[i];
                if(v[i] > maxnum) maxnum = v[i];
            }
            for( int i=1;i<=maxnum;i++)     // 初始化
            {
                parent[i]=i;
                rank[i]=0;
    
            }
            for(int i=0;i<m;i++)
            {
                if(Find(u[i]) != Find(v[i]))
                    Union(u[i],v[i]);
            }
    
            for(int i=1;i<=maxnum;i++)    // 统计子树元素个数
            {
                int k=Find(i);
                sumnum[k]++;
                if(sumnum[k]>num)
                    num=sumnum[k];
            }
            printf("%d
    ",num);
        }
        return 0 ;
    }
  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/zn505119020/p/3578663.html
Copyright © 2020-2023  润新知