Ubiquitous Religions

简单的并查集模板问题

#include 
#include 
#include 
using namespace std;
int s[1000000];
void made(int n)
{
    for(int i=1;i<=n;i++)
    {
        s[i]=i;
    }
}

int findd(int x)
{
    if(s[x]!=x)
    {
        s[x]=findd(s[x]);
    }
    return s[x];
}
int add(int a,int b)
{
    int fa=findd(a);
    int fb=findd(b);
    if(fa!=fb)
    {
        s[fa]=fb;
    }
}
int main()
{
    int n,m;
    int count=1;
    while(cin>>n>>m)
    {
        memset(s,0,sizeof(s));
        int num=0;
        if(n==0&&m==0)
            break;
        made(n);
        int u,v;
        for(int i=0;i>u>>v;
            add(u,v);
        }
        for(int i=1;i<=n;i++)
        {
            if(s[i]==i)
                num++;
        }
        cout<<"Case "<


你可能感兴趣的:(SDUT)