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); } }