luogu_1111 修复公路
Posted Code_Together
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu_1111 修复公路相关的知识,希望对你有一定的参考价值。
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; int n,m,p[1010],t,cnt,ans,sum; struct edge{int u,v,w;}e[100010]; bool cmp(edge x,edge y){return x.w<y.w;} int find(int x){return x==p[x]?x:p[x]=find(p[x]);} int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)p[i]=i; while(m--){ int u,v,w; scanf("%d%d%d",&u,&v,&w); e[++cnt].u=u; e[cnt].v=v; e[cnt].w=w; } sort(e+1,e+cnt+1,cmp); for(register int i=1;i<=cnt;i++){ int x=find(e[i].u),y=find(e[i].v); if(x!=y){ p[x]=y; sum++; ans=e[i].w; } } if(sum==n-1)printf("%d\n",ans); else puts("-1"); return 0; }
以上是关于luogu_1111 修复公路的主要内容,如果未能解决你的问题,请参考以下文章