#include<stdio.h>
int p[100005];
int fr[100005];
int find(int n)
{
return p[n]=p[n]==n?p[n]:find(p[n]);
}
int main()
{
int t,i,a,b;
while(scanf("%d",&t)!=EOF)
{
for(i=1;i<=100000;i++)
{
p[i]=i;
fr[i]=1;
}
int frmax=1;
while(t--)
{
scanf("%d%d",&a,&b);
a=find(a);
b=find(b);
if(a!=b)
{
p[a]=b;
fr[b]+=fr[a];
if(frmax<fr[b])
{
frmax=fr[b];
}
}
}
printf("%d\n",frmax);
}
}
Hdu1856 - More is better - 并查集
最新推荐文章于 2020-03-15 22:05:55 发布