Friends--并查集


#include <map>
#include <queue>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#define maxn 30100
using namespace std;
int set[maxn],sum[maxn],imax;
int set_find(int d){
    if(set[d]<0)
        return d;
    else return set_find(set[d]);
}
void join(int a,int b){
    int x=set_find(a);
    int y=set_find(b);
    if(x!=y){
        set[x]=y;
        sum[y]+=sum[x];
        imax=sum[y]>imax?sum[y]:imax;
    }
}
int main(){
    int loop;
    scanf("%d",&loop);
    while(loop--){
        int x,y,n,m;
        scanf("%d%d",&n,&m);
         for(int i=0;i<n;++i){
                sum[i]=1;
                set[i]=-1;
        }
        imax=0;
        while(m--){
            scanf("%d%d",&x,&y);
            join(x,y);
        }
        printf("%d\n",imax);
    }
    return 0;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32426313/article/details/52368331
个人分类: 并查集
想对作者说点什么? 我来说一句

acm的数据结构内容

2010年04月23日 408KB 下载

朱全民-并查集ppt

2009年07月25日 103KB 下载

并查集初步

2012年12月01日 386KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭