hdu 1213 How Many Tables(并查集)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 1213 How Many Tables(并查集)相关的知识,希望对你有一定的参考价值。

基本的并查集。 可是 题目里说的There will be a blank line between two cases. 这句话在扯淡吗- - 我还加了换行 PE了两次 后来看网上AC的代码根本不需要啊- -

#include <iostream>
using namespace std;
int p[1005];

void init(int n)
{
    for(int i=1;i<=n;i++)
        p[i]=i;
}

int find(int x)
{
    while(x!=p[x])
        x=p[x];
    return x;
}

void join(int x,int y)
{
    int fx=find(x);
    int fy=find(y);
    if(fx!=fy)
        p[fy]=fx;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        init(n);
        for(int i=1;i<=m;i++)
        {
            int a,b;
            cin>>a>>b;
            join(a,b);
        }

        int sum=0;
        for(int i=1;i<=n;i++)
        {
            if(i==p[i])
                sum++;
        }
        cout<<sum<<endl;
        cout<<endl;
    }
    return 0;
}

 

以上是关于hdu 1213 How Many Tables(并查集)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 1213 How Many Tables(模板——并查集)

HDU - 1213 How Many Tables(并查集)

HDU - 1213 How Many Tables [并查集]

HDU 1213 How Many Tables [并查集]

HDU 1213 How Many Tables(并查集)

HDU 1213 How Many Tables