标签:blog os io for div amp log size
并查集基础
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #define mem(a,b) memset(a,b,sizeof(a)) #define ll __int64 #define MAXN 1000 #define INF 0x7ffffff using namespace std; int maxx; struct Children { int coun; int father; }; Children c[10000005]; int find(int a) { int temp=a; while(temp!=c[temp].father) { temp=c[temp].father; } c[a].father=temp; return temp; //return c[a].father==a?a:find(c[a].father); 感觉这种写法更加简练 } void Union(int a,int b) { int x=find(a); int y=find(b); if(x==y) return ; c[y].father=c[x].father; c[x].coun+=c[y].coun; if(maxx<c[x].coun) maxx=c[x].coun; } int main() { int n,i,j,a,b; while(scanf("%d",&n)!=EOF) { if(n==0) {cout<<1<<endl;continue;} maxx=0; for(i=1;i<=10000000;i++)//初始化并查集 { c[i].coun=1; c[i].father=i; } for(i=1;i<=n;i++) { scanf("%d%d",&a,&b); Union(a,b); } printf("%d\n",maxx); } return 0; }
hdu 1856 more is better,布布扣,bubuko.com
标签:blog os io for div amp log size
原文地址:http://www.cnblogs.com/sola1994/p/3901826.html