UVa 10608 - Friends(并查集)

来源:互联网 发布:淘宝客怎么在微信推广 编辑:程序博客网 时间:2024/05/16 06:09

题目链接:UVa 10608 - Friends(并查集)


并查集经常和最小生成树之类的题放在一起考察。不过这道题只有一个考察点:并查集。再次熟悉一下。
/**UVa 10608 - Friends并查集 模版题*/#include <iostream>#include <cstring>using namespace std;const int MAX_N = 30000 + 1000;int N,M;int x,y;int T;int p[MAX_N];int cnt[MAX_N];int _max;int u,v;int Find(int x){    return p[x] == x ? x : (p[x] = Find(p[x]));}void Union(int u,int v){    p[u] = v;}int main(){    cin>>T;    while(T--)    {        memset(cnt,0,sizeof(cnt));        cin>>N>>M;        int i;        for(i = 1; i <= N; i++)            p[i] = i;        for(i = 0; i < M; i++)        {            cin>>x>>y;            u = Find(x);            v = Find(y);            if(u != v)                Union(u,v);        }        for(i = 1; i <= N; i++)            cnt[Find(i)]++;        _max = 0;        for(i = 1; i<= N; i++)        {            if(cnt[i] > _max)                _max = cnt[i];        }        cout<<_max<<endl;    }    return 0;}
0 0
原创粉丝点击