hdu1024很简单的一道题,我测试的数据感觉也可以啊,就是WA,各位大侠们帮我看看,#includeint main(){int n,i,flag,mark;double sum,ave,max=0,min=0,a[100];while(scanf(%d,&n)!=EOF){sum=0;flag=mark=1;scanf(%lf,&a[1]);max=min=a[1];for(i=2;i
网友回答
#include <stdio.h>
#define mx 100010
int pr[mx] ,in[mx] ,f ,zh[mx] ,z ;
int init()
{int i ;f = z = 0 ;
for( i = 0 ; i < mx ; i ++ )
{ pr[i] = in[i] = 0 ;
}return 0 ;
}int cha( int x )
{int t = x ;
if( !pr[x] ) pr[x] = x ;
while( pr[x] != x ) x = pr[x] ;
pr[t] = x ;
return x ;
}int one()
{int t ,i ;
t = cha(zh[0]) ;
for( i = 1 ; i < z ; i ++ )
return 1 ;
}int bing( int a ,int b )
{int pa = cha( a ) ;int pb = cha( b ) ;if( pa == pb ) return 0 ;pr[pb] = pa ;return 1 ;
}int main()
{// freopen( i.in ,r ,stdin ) ;int a ,b ;init() ;while( scanf( %d %d ,&a ,&b ) != EOF ){if( a == -1 && b == -1 ) return 0 ;if( !a && !b ){if( f ) printf( No\n ) ;else{if( one() ){printf( Yes\n ) ;}else printf( No\n ) ;}init() ;}else{if( !f ){if( bing( a ,b ) ){// f = 1 ;if( !in[a] )if( !in[b] )}else f = 1 ;}}}return 0 ;}