#P17189. 大户爱的生成树2

大户爱的生成树2

1005. 大户爱的生成树2

题目描述

大户爱有两张图,图 A 为一张 N 个点、M 条边的无向带权图,图 B为一张 N 个点的完全图,图 B 中任意两点间的边权为图 A 中对应两点的最小割。给定图 A,求图 B 的最小生成树的边权之和。最小割定义:给定一个无向带权图 G,点集为 V,边集为 E,其中每条边 u ↔ v有权值 wu,v。

一个割是指将点集 V 划分为两个非空不相交集合 S 和 T,即:

  • S∪T =V

  • S∩T =∅

  • S=∅

  • T =∅

该割的容量定义为所有跨越 S 和 T 的边的权值之和:

c=

∑ wu,v

u∈S,v∈T

最小割是指所有可能割中容量最小的割,其容量记为:

λ = min c∅=S⊂V

对于图 G 中任意两个指定顶点 s 和 t,s 和 t 之间的最小割定义为:在所有满足 s ∈ S、t ∈ T 的割中,容量的最小值,即:

λst =

min

∅=S⊂V, s∈S, t∈T

c

输入格式

第一行输入一个整数 T,表示数据组数。每组数据首先输入两个整数 N 和 M,表示图 A 的点数和边数。接下来输入 M 行,每行三个整数 x, y, z,表示 x 和 y 之间有一条权值为 z 的边。不保证图连通,且可能出现重边和自环。

1 ≤ T ≤ 6,1 ≤ N ≤ 600,∑ N ≤ 2000,0 ≤ M ≤ N (N2−1),0 ≤z ≤ 109。

输出格式

对于每组数据,输出一行一个整数,表示图 B 的最小生成树的边权之和。

样例输入

1
5 5
1 2 1
2 3 2
3 4 3
4 5 4
5 1 5

样例输出

12

来源:官方题面 PDF(2026"钉耙编程"暑期联赛 第10场)