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