Ubiquitous Religions

来源:互联网 发布:小学生阅读软件下载 编辑:程序博客网 时间:2024/06/05 17:14

简单的并查集模板问题

#include <iostream>#include <cstring>#include <cstdlib>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<m;i++)        {            cin>>u>>v;            add(u,v);        }        for(int i=1;i<=n;i++)        {            if(s[i]==i)                num++;        }        cout<<"Case "<<count++<<": "<<num<<endl;    }    return 0;}


0 0
原创粉丝点击