标签:
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others)
Total Submission(s): 17683 Accepted Submission(s):
6493
#include<stdio.h> #include<string.h> #define MAX 10000010 #define maxn(a,b)(a>b?a:b) int set[MAX],path[MAX]; int a[100010],b[100010]; int sum=0; int find(int fa) { int t; int ch=fa; while(fa!=set[fa]) fa=set[fa]; while(ch!=fa) { t=set[ch]; set[ch]=fa; ch=t; } return fa; } void mix(int x,int y) { int fx,fy; fx=find(x); fy=find(y); if(fx!=fy) { set[fx]=fy; path[fy]+=path[fx]; if(sum<path[fy]) sum=path[fy]; } } int main() { int n,m,j,i,max,point; while(scanf("%d",&n)!=EOF) { if(n==0) { printf("1\n"); continue; } max=0; for(i=1;i<=n;i++) { scanf("%d%d",&a[i],&b[i]); if(max<maxn(a[i],b[i])) max=maxn(a[i],b[i]); } for(i=1;i<=max;i++) { set[i]=i; path[i]=1; } for(i=1;i<=n;i++) { mix(a[i],b[i]); } printf("%d\n",sum); sum=0; } return 0; }
标签:
原文地址:http://www.cnblogs.com/tonghao/p/4540170.html