HDU 1865 More is better

来源:互联网 发布:网络情感骗局男的手法 编辑:程序博客网 时间:2024/06/05 18:42

思路:一道水并查集、、就是有点奇怪、

#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std;const int maxn=10000005;int father[maxn];int rank[maxn];void init(){    for(int i=1;i<=maxn;i++)    {        father[i]=i;        rank[i]=1;    }}int find(int x){    int r=x;    while(r!=father[r])        r=father[r];    int b=x;    int f;    while(b!=r)    {        f=father[b];        father[b]=r;        b=f;    }    return r;}void merge(int x,int y){    int fx,fy;    fx=find(x);    fy=find(y);    if(fx!=fy)    {        father[fx]=fy;        rank[fy]+=rank[fx];    }}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        if(n==0)        {            printf("1\n");            continue;        }        init();        int a,b;        int temp=0;        for(int i=0;i<n;i++)        {            scanf("%d%d",&a,&b);            if(temp<a)temp=a;            if(temp<b)temp=b;            merge(a,b);        }        int maxx=0;        for(int i=1;i<=temp;i++)        {            if(maxx<rank[i])                maxx=rank[i];        }        printf("%d\n",maxx);    }    return 0;}


0 0
原创粉丝点击