【USACO 2011 Dec Gold 】简化农场

农夫约翰面临农场优化问题,希望通过最小生成树理论改造农场,确保所有农田间只有一条路径。题目描述了如何处理具有相同长度边的情况,寻找最小生成树的总长度及不同生成树的数量。解决方案涉及分阶段处理,使用Kruskal算法,并通过DFS枚举阶段边的方案,以确定连通性。时间复杂度为O(MlogM+M*k)。
摘要由CSDN通过智能技术生成

Description

农夫约翰在一所夜校学习算法课程,他刚刚学会了最小生成树。现在约翰意识到他的农场设计得不够高效,他想简化农场的布局。 

约翰的农场可以看做一个图,农田代表图中顶点,田间小路代表图中的边,每条边有一定的长度。约翰注意到,农场中最多有三条小路有着相同的长度。约翰想删除一些小路使得农场成为一棵树,使得两块农田间只有一条路径。但是约翰想把农场设计成最小生成树,也就是农场道路的总长度最短。 

请帮助约翰找出最小生成树的总长度,同时请计算出总共有多少种最小生成树?

Input

第一行,两个整数N 和 M (1 <= N <= 40,000; 1 <= M <= 100,000),分别表示农田数目和小路的数目 
接下来M行,每行三个整数a_i, b_i 和 n_i (1 <= a_i, b_i <=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值