Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 11354 Accepted Submission(s): 3367

整个文件以两个-1结尾。
6 8 5 3 5 2 6 4 5 6 0 0 8 1 7 3 6 2 8 9 7 5 7 4 7 8 7 6 0 0 3 8 6 8 6 4 5 3 5 6 5 2 0 0 -1 -1
# include <stdio.h>
int pre[100001];
int num[100001],flag;
void make_pre()
{
for(int i=0;i<=100001;i++)
{
pre[i]=i;
num[i]=0;
}
}
int find(int x)
{
return x==pre[x]?x:pre[x]=find(pre[x]);
}
void mergy(int x,int y)
{
int x1=find(x);
int y1=find(y);
if(x1!=y1)
{
pre[x1]=y1;
}
else
flag=0;
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b),a!=-1&&b!=-1)
{
make_pre();
int sum=0;
flag=1;
while(a!=0&&b!=0)
{
mergy(a,b);
num[a]=num[b]=1;
scanf("%d%d",&a,&b);
}
for(int i=0;i<100001;i++)
{
if(num[i] && pre[i]==i)
sum++;
if(sum>1)
{
flag=0;
break;
}
}
if(flag)
printf("Yes\n");
else
printf("No\n");
}
}
ps:只有一条路,不是多条路。一开始忘记初始化就WA,初始化很重要);