首页 > 其他 > 详细

hdu 1856 More is better

时间:2014-05-07 00:47:14      阅读:350      评论:0      收藏:0      [点我收藏+]

http://acm.hdu.edu.cn/showproblem.php?pid=1856

这道题就是求一个集合里面最大的个数。 基本的并查集加一个步骤,将合并后的元素的个数保存在新的树根中。

bubuko.com,布布扣
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 100010
 5 using namespace std;
 6 
 7 int f[maxn],a[maxn];
 8 int n,b,c;
 9 int max1=-1;
10 
11 int find1(int x)
12 {
13     if(x==f[x]) return x;
14     return f[x]=find1(f[x]);
15 }
16 
17 void union1(int aa,int b)
18 {
19     int fa=find1(aa);
20     int fb=find1(b);
21     if(fa!=fb)
22     {
23         f[fa]=fb;
24         a[fb]+=a[fa];
25         max1=max(max1,a[fb]);
26     }
27 }
28 
29 void inti()
30 {
31     for(int i=0; i<=maxn; i++)
32     {
33         f[i]=i;
34         a[i]=1;
35     }
36 }
37 
38 int main()
39 {
40     while(scanf("%d",&n)!=EOF)
41     {
42         inti();
43         max1=1;
44         for(int i=0; i<n; i++)
45         {
46             scanf("%d%d",&b,&c);
47             union1(b,c);
48         }
49         printf("%d\n",max1);
50     }
51     return 0;
52 }
View Code

 

hdu 1856 More is better,布布扣,bubuko.com

hdu 1856 More is better

原文:http://www.cnblogs.com/fanminghui/p/3712521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!