统计并查集里的最大元素个数
code:
#includeusing namespace std;int bin[10000001];int summ[10000001];int find(int x){ if(bin[x]!=x) { bin[x]=find(bin[x]); } return bin[x];}int main(int argc, char *argv[]){ int n; while(scanf("%d",&n)!=EOF) { int i; for(i=1;i<=10000000;i++) { bin[i]=i; //并查集初始化 summ[i]=1; //初始化 } int maxx=-1; for(i=1;i<=n;i++) { int a,b; scanf("%d%d",&a,&b); if(a>maxx) { maxx=a; } if(b>maxx) { maxx=b; } int af,bf; af=find(a); bf=find(b); if(af!=bf) { bin[af]=bf; summ[bf]+=summ[af]; //统计并集里的最大元素和 } } //-------------输出结果------------------------ int ir; int resulta=-1; for(ir=1;ir<=maxx;ir++) { if(resulta