当前位置:编程学习 > C/C++ >>

九度教程第69题

C语言源码:
[cpp] 
#include<stdio.h>  
#define maxsize 1010  
int Tree[maxsize];  
int findroot(int x)  
{  
    int temp;  
    if(Tree[x]==-1)  
        return x;  
    else  
    {  
        temp=findroot(Tree[x]);  
        Tree[x]=temp;  
        return temp;  
    }  
}  
int main()  
{  
    int t,n,m,a,b,i,num;  
    while(scanf("%d",&t)!=EOF)  
    {  
        while(t--)  
        {  
            scanf("%d %d",&n,&m);  
            for(i=0;i<n;i++)  
                Tree[i]=-1;  
            while(m--)  
            {  
                scanf("%d %d",&a,&b);  
                a--;  
                b--;  
                a=findroot(a);  
                b=findroot(b);  
                if(a!=b)  
                    Tree[b]=a;  
            }  www.zzzyk.com
            num=0;  
            for(i=0;i<n;i++)  
                if(Tree[i]==-1)  
                    num++;  
            printf("%d\n",num);  
        }  
    }  
}  
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,