您的位置:首页 > 其它

HDOJ 1232 畅通工程 杭电 ACM

2013-08-07 20:19 225 查看
并查集原始题 看懂PPT上代码后空手练的

寻根函数用了递归但未超时

#include<stdio.h>
int n,m,i,p[1001],a,b,cnt;
int rt(int x){return p[x]==x?x:rt(p[x]);}
void f(int a,int b){
    int x=rt(a),y=rt(b);
    if(x!=y)p[x]=y;
}
int main(){
    while(scanf("%d%d",&n,&m),n){
        for(i=1;i<=n;++i)p[i]=i;
        while(m--)scanf("%d%d",&a,&b),f(a,b);
        for(cnt=0,i=1;i<=n;++i)
            if(p[i]==i)cnt++;
        printf("%d\n",cnt-1);
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDOJ ACM