zoukankan      html  css  js  c++  java
  • hdu 1213

    #include<stdio.h>
    int pre[1100];
    int find(int n) {
        if(pre[n]!=n)
            return pre[n]=find(pre[n]);
        return pre[n];
    }
    int main(){
        int i,j,a,b,sum,f1,f2,n,m,t,h;
        scanf("%d",&t);
        while(t--) {
            scanf("%d%d",&n,&m);
            for(i=1;i<=n;i++)
                pre[i]=i;
            while(m--) {
                scanf("%d%d",&a,&b);
                f1=find(a);
                f2=find(b);
                if(f1!=f2)
                    pre[f1]=f2;
            }
            sum=0;
            for(i=1;i<=n;i++) {
                h=0;
                for(j=1;j<=n;j++)
                    if(i==find(j)) {//直接找到他的父节点
                        h=1;
                        pre[j]=-1;
                    }
                    if(h)
                        sum++;
            }
            printf("%d ",sum);
        }
        return 0;
    }
  • 相关阅读:
    操作系统要点总结
    ARP的通信过程
    判断网段、子网、网络号
    C++要点总结
    枚举类型
    C指针总结
    C运算符总结
    替换空格
    WCF编写时候的测试
    WCF创建到使用到发布
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410964.html
Copyright © 2011-2022 走看看