Nyoj 790 The More,the Better[基础并查集]

来源:互联网 发布:淘宝网怎么盈利 编辑:程序博客网 时间:2024/06/08 10:02

题目链接:气点

#include<stdio.h>#define N 1005int father[N],rank[N];void Init(){    for(int i=1;i<=N;i++)    {        father[i]=i;        rank[i]=1;    }}int Find_Father(int x){    if(x!=father[x])    father[x]=Find_Father(father[x]);    return father[x];}void Union(int a,int b){    int x=Find_Father(a);    int y=Find_Father(b);    if(x==y) return;    if(rank[x]>rank[y])    {        rank[x]+=rank[y];        father[y]=x;    }    else    {        rank[y]+=rank[x];        father[x]=y;    }}int main(){    int n;    while(~scanf("%d",&n))    {        Init();        int a,b;        for(int i=1;i<=n;i++)        {            scanf("%d%d",&a,&b);            Union(a,b);        }        int MAX=0;        for(int i=1;i<=N;i++)        if(rank[i]>MAX) MAX=rank[i];        printf("%d\n",MAX);    }}/*  小小的模板*/#define N ?int father[N],rank[N];void Init(){    for(int i=1;i<=N;i++)    father[i]=i,rank[i]=1;}int Find_Father(x){    if(x!=father[x])    father[x]=Find_Father(father[x]);    return father[x];}void Union(int a,int b){    int x=Find_Father(a);    int y=Find_Father(b);    if(x==y) return;    if(rank[x]>rank[y])    {        father[y]=x;        rank[x]+=rank[y];    }    else    {        father[x]=y;        rank[y]+=rank[x];    }}


原创粉丝点击