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 修复公路的主要内容,如果未能解决你的问题,请参考以下文章

luogu P1111 修复公路

修复公路

修复公路

修复公路

luogu P1111 公路修建 题解

P1111 修复公路