数据结构总结之并查集

来源:互联网 发布:建立数据库的意义 编辑:程序博客网 时间:2024/05/22 02:07

1.模板题:uva10608

#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int par[500005];int g[500005];int cases;int n,m;int find_par(int x){    return x==par[x]?x:find_par(par[x]);}void union_(int x,int y){    int a=find_par(x);    int b=find_par(y);    par[a]=b;}int main(){    cin>>cases;    while(cases--)    {        scanf("%d%d",&n,&m);        memset(g,0,sizeof(g));        for(int i=1; i<=n; i++)            par[i]=i;        for(int i=0; i<m; i++)        {            int a,b;            scanf("%d%d",&a,&b);            union_(a,b);        }        for(int i=1;i<=n;i++)            par[i]=find_par(i);        for(int i=1;i<=n;i++)        {            int x=par[i];            g[x]++;        }        sort(g+1,g+n+1);        cout<<g[n]<<endl;    }    return 0;}