用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

HDOJ1232畅通工程

2014-05-27 作者: qiu0130举报

[c++]代码库

#include<stdio.h>
#include<string.h>
#define N 10000006
int a[N],b[N],m,sum;
void init();
int find(int x);
void insert(int x,int y);
int main()
{
     int x,y,i,j,max;
     while(scanf("%d",&m)!=EOF)
     {
         j=0;
         init();
         max=-1;
         for(i=0;i<m;i++)
         {
             scanf("%d%d",&x,&y);
             insert(x,y);
         }
         for(i=0;i<N;i++)
         {       
             if(max<b[i])
                max=b[i];     
         }
                printf("%d\n",max);

     }
     return 0;
}
void init()
{
    for(int j=0;j<N;j++)
        a[j]=j,b[j]=1;
    return ;
}
int find(int x)
{
    if(a[x]==x)
        return x;
    else
        a[x]=find(a[x]);
    return a[x];
}
void insert(int x,int y)
{
    int x1=find(x);
    int y1=find(y);
    if(x1!=y1)
    {
        if(b[x1]>=b[y1])
        {
            a[y1]=x1;
            b[x1]+=b[y1];
        }
        else
        {
            a[x1]=y1;
            b[y1]+=b[x1];

        }
    }
    return ;

}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...