zoukankan      html  css  js  c++  java
  • hdu1213

    #include <stdio.h>
    #include <string.h>
    #define  MAXN 1100
    int parent[MAXN];
    int n,m;
    void UFset(){
        for(int i=1;i<=n;++i)
            parent[i]=-1;
    }
    int Find(int x){
        int s;
        for(s=x;parent[s]>=0;s=parent[s])
            ;    
        while(s!=x){
            int tmp=parent[x];
            parent[x]=s;
            x=tmp;
        }
        return s;
    }
    void Union(int R1,int R2){
        int r1=Find(R1),r2=Find(R2);
        int tmp=parent[r1]+parent[r2];
        if(parent[r1]>parent[r2]){
            parent[r1]=r2;
            parent[r2]=tmp;
        }
        else{
            parent[r2]=r1;
            parent[r1]=tmp;
        }
    }
    int main(){
        int t;
        int i,j;
        int t1,t2;
        int sign[1100];
        int res;
        while(~scanf("%d",&t)){
            while(t--){
                res=0;
                memset(sign,0,sizeof(sign));
                scanf("%d%d",&n,&m);
                UFset();
                while(m--){
                    scanf("%d%d",&t1,&t2);
                    if(Find(t1)!=Find(t2)){
                        Union(t1,t2);
                    }
                }
                for(i=1;i<=n;++i){
                    if(parent[i]<0){
                        res++;
                    }
                }
                printf("%d
    ",res);
            }
        }
        return 0;
    }
  • 相关阅读:
    侧边工具栏
    proguard 使用说明
    人员组成
    google play
    大数据平台相关
    HttpClient
    库克
    html5 开发 android 注意点
    htm5 动画制作 工具
    JAVA取得WEBROOT物理路径
  • 原文地址:https://www.cnblogs.com/symons1992/p/3439917.html
Copyright © 2011-2022 走看看