讨论 / 原来快排反了,怪不得半天不AC……(>﹏<)
lijie201602 2017-09-27 22:40:05
点我顶贴 收藏 删除
#include<cstdio>

struct node{ int x,y,w; } a[100010];

int f[20010],n,m;

void qsort(int l,int r)

{

int i=l,j=r,m=a[(l+r)/2].w;

while(i<=j)

{

while(a[i].w>m) i++;

while(a[j].w<m) j--;

if(i<=j)

{

node t=a[i]; a[i]=a[j]; a[j]=t;

i++; j--;

}

}

if(i<r) qsort(i,r);

if(l<j) qsort(l,j);

}

int ff(int x)

{

if(x==f[x]) return x;

f[x]=ff(f[x]);

return f[x];

}

void find(int x,int y)

{

if(ff(x)==ff(y)) return ;

f[ff(x)]=ff(y);

ff(x); ff(y);

}

int main()

{

scanf("%d %d",&n,&m);

for(int i=1;i<=m;i++) scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].w);

qsort(1,m);

for(int i=-n;i<=n;i++) f[i]=i;

for(int i=1;i<=m;i++)

{

int x=a[i].x,y=a[i].y;

find(-x,y); find(x,-y);

if(ff(-x)==ff(x)) { printf("%d",a[i].w); return 0; }

}

printf("0");

return 0;

}

查看更多回复
提交回复