HDOJ 1213 How Many Tables 杭电 ACM

来源:互联网 发布:淘宝权重低怎么办 编辑:程序博客网 时间:2024/04/30 05:10

比1232更原始的并查集

#include<stdio.h>int t,m,n,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(){    scanf("%d",&t);    while(t--){        scanf("%d%d",&n,&m);        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);    }}


原创粉丝点击