poj 点击打开链接
zoj点击打开链接
该死的hdu!!
这道题是在暑假练习赛中的遇到的,在POJ和ZOJ上提交全A了,但在比赛时,怎么都不对!!
坑爹啊!!!!。。
#include"stdio.h" #include"stdlib.h" int set[15001]; struct node { int a,b,dis; }aa[15001]; int find(int x) { int r,i; r=x; while(set[r]!=r) r=set[r]; while(set[x]!=r) { i=set[x]; set[x]=r; x=i; } return r; } int cmp(const void*a,const void*b) { struct node *c,*d; c=(struct node*)a; d=(struct node*)b; return c->dis>d->dis?1:-1; } int main() { int i,n,m,a,b,c,d[1001],f; while(scanf("%d%d",&n,&m)!=-1) { for(i=0;i<=n;i++) set[i]=i; for(i=0;i<m;i++) scanf("%d%d%d",&aa[i].a,&aa[i].b,&aa[i].dis); qsort(aa,m,sizeof(aa[0]),cmp); c=0;f=0; for(i=0;i<m;i++) { a=find(aa[i].a); b=find(aa[i].b); if(a!=b) { set[a]=b; c=(aa[i].dis>c?aa[i].dis:c); d[f++]=i; } } printf("%d\n%d\n",c,f); for(i=0;i<f;i++) printf("%d %d\n",aa[d[i]].a,aa[d[i]].b); } return 0; }