题目名称 673. [WC 2012] 最小生成树
输入输出 mst.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarMakazeu 于2012-03-29加入
开放分组 全部用户
提交状态
分类标签
图论 数学 随机化 最小生成树
分享题解
通过:1, 提交:15, 通过率:6.67%
Gravatarr_64 100 1.306 s 57.38 MiB C++
GravatarTA 50 0.821 s 68.98 MiB C++
GravatarOwaski 20 0.703 s 22.25 MiB C++
Gravatar安呐一条小咸鱼。 10 0.004 s 0.29 MiB C++
Gravatartankoldable 10 1.092 s 32.47 MiB C++
GravatarOwaski 10 3.414 s 17.80 MiB C++
Gravatar安呐一条小咸鱼。 0 0.000 s 0.29 MiB C++
Gravatar天佐 0 0.001 s 0.29 MiB C++
Gravatar侠客行 0 0.001 s 0.31 MiB C++
GravatarAntiLeaf 0 0.002 s 9.00 MiB C++
关于 最小生成树 的近10条评论(全部评论)
不做了 摔键盘
Gravatar安呐一条小咸鱼。
2016-02-18 12:06 2楼
回复 @派大星 :
你还能再逗比一点吗?、、
Gravatar乌龙猹
2014-10-21 16:21 1楼

673. [WC 2012] 最小生成树

★★★☆   输入文件:mst.in   输出文件:mst.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

给定无向带权连通图 G,我们希望通过修改边的权值,使它的最小生成树唯一。已知减小、增加一条边的权值的单位代价分别为 $a$ 和 $b$,且修改后的权值必须为非负整数。

例如,对某个图 G,如果将一条边的权值减 $3$、另一条边的权值加 $2$ 之后,它的最小生成树唯一,则此时的代价之和是 $3a+2b$。试计算代价之和的最小值。

【输入格式】

输入文件 mst.in 的第一行包含数据编号,对于第 i 个数据,第一行将包含字符串 “mst i”。

第二行包含 $4$ 个正整数 $n, m, a, b$,分别表示图 G 顶点的个数、边的条数,以及对一条边的权值减 $1$、加 $1$ 的代价。

接下来 $m$ 行,每行 $3$ 个正整数 $x, y, w$,表示顶点 $x$ 和顶点 $y$ 之间连有一条初始权值为 $w$ 的边。顶点由 $1$ 至 $n$ 编号。

【输出格式】

输出文件 mst.out 仅包含一行,包含一个非负整数,即要求的最小值。如果无需修改,即图本身的最小生成树就是唯一的,则输出 $0$。

【样例输入】

mst 0
4 5 2 3
1 2 1
1 3 1
2 3 1
2 4 2
3 4 2

【样例输出】

5

【样例说明】

将边 $(2, 4)$ 的权值减 $1$,边 $(2, 3)$ 的权值加 $1$ 之后,图 G 的最小生成树唯一,

且此时的代价之和取到最小值。