标签:
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
Yes Yes No犯了一个低级错误:void join(int a,int b) { int fa=find(a); int fb=find(b); if(fa!=fb) a[fa]=fb; else flag=0; }#include<stdio.h> int a[100100]; int b[100100]; int flag; int find(int x) { int r=x; while(r!=a[r]) r=a[r]; a[x]=r; return r; } void join(int c,int b) { int fc=find(c); int fb=find(b); if(fc!=fb) a[fc]=fb; else flag=0; } int main() { int i,j,k,c,d; while(scanf("%d%d",&c,&d)!=EOF) { if(c==0&&d==0) { printf("Yes\n"); continue; } if(c==-1&&d==-1) break; // if() for(i=1;i<=100000;i++) { a[i]=i; b[i]=0; } flag=1; b[c]=1,b[d]=1; join(c,d); while(scanf("%d%d",&c,&d)&&(c!=0&&d!=0)) { b[c]=1,b[d]=1; join(c,d); } int ant=0; for(i=1;i<=100000;i++) { if(a[i]==i&&b[i]) ant++; if(ant>1) { flag=0; break; } } if(flag) printf("Yes\n"); else printf("No\n"); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/l15738519366/article/details/47130483