zoukankan      html  css  js  c++  java
  • More is better HDU

    More is better

    HDU - 1856
    题意:给出n个关系,问最多有多少个人直接或者间接有关系.
    并查集.
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int maxn=10000010;
     5 int f[maxn],rk[maxn];
     6 
     7 int gf(int x){
     8     return x==f[x]?f[x]:f[x]=gf(f[x]);
     9 }
    10 int n;
    11 int main(){
    12    // freopen("in.txt","r",stdin);
    13     while(scanf("%d",&n)!=EOF){
    14         int ans=0;
    15         for(int i=0;i<maxn;i++) f[i]=i,rk[i]=1;
    16         for(int i=0;i<n;i++){
    17             int a,b;
    18             scanf("%d %d",&a,&b);
    19             int pa=gf(a),pb=gf(b);
    20             if(pa!=pb){
    21                 f[pa]=pb;
    22                 rk[pb]+=rk[pa];
    23               //  ans=max(ans,rk[pb]);
    24             }
    25         }
    26         for(int i=1;i<maxn;i++) ans=max(ans,rk[i]);
    27         printf("%d
    ",ans);
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    作业,注册页面
    HTML表单
    用HTML制作简历
    多线程同步标记
    集合类
    多态 接口
    java 泛型讲解
    转型
    使用super关键字
    作业题
  • 原文地址:https://www.cnblogs.com/yijiull/p/6786236.html
Copyright © 2011-2022 走看看