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

九度教程第68题

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 n,m,i,num,b,a;  
    scanf("%d %d",&n,&m);  
    while(n!=0||m!=0)  
    {  
        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;  
        }  
        num=0;  
        for(i=0;i<n;i++)  
            if(Tree[i]==-1)  
                num++;  
        if(num==1)  
            printf("YES\n");  
        else  
            printf("NO\n");  
        scanf("%d %d",&n,&m);  
    }  
}  
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,