HDOJ 1232 畅通工程 并查集

来源:互联网 发布:西游降魔篇 知乎 编辑:程序博客网 时间:2024/04/29 20:45

并查集是一类相关的事物合并到一起,这题只要使用最基础的并查集的方法就可以求出。

#include<stdio.h>int pa[1002];int find(int k){    if(pa[k]!=k)        pa[k]=find(pa[k]);    return pa[k];}void bing(int x,int y){    x=find(x);    y=find(y);    if(x!=y)        pa[x]=y;}int main(){    int n,m,x,y,ans;    while(scanf("%d",&n)!=EOF)    {        if(n==0)            break;        ans=-1;        for(int i=1;i<=n;i++)            pa[i]=i;        for(scanf("%d",&m);m>0;m--)        {            scanf("%d%d",&x,&y);            bing(x,y);        }        for(int i=1;i<=n;i++)            if(pa[i]==i)            {                ans++;                printf("%d\n",i);            }        printf("%d\n",ans);    }    return 0;}


0 0
原创粉丝点击