#S8U12P03. 各连通片的生成森林

各连通片的生成森林

各连通片的生成森林

难度:T2

【知识点:Kruskal最小生成树】

前置知识:本单元此前讲解的状态、边界与实现。

题目描述

原图可能不连通。在每个原有连通块内分别选边建一棵最小生成树,求这些树的总费用;孤立点贡献零。

输入格式

其中 nn 为顶点数,顶点编号为 11 到 nn;mm 为随后给出的带权边条数。每条带权边独占一行,依次为 u,v,wu,v,w,表示从 uu 到 vv 的边及权值 ww;无向边可双向通行,有向边只能从 uu 到 vv 通行。

输入nn、mm及mm条无向带权边。允许负权、自环和重边。

规则说明

生成树是选取原图中的一部分边,使所有顶点连通且不形成环;费用为选中边的权值之和。最小生成树是在所有生成树中总费用最小的一个。只有一个顶点时,不选边即可形成生成树,费用为 00。

输出格式

每个原有连通块分别建最小生成树,输出这些树的总费用;孤立点贡献00。

数据范围

1≤n≤1000001\le n\le 100000,0≤m≤2000000\le m\le 200000,∣w∣≤109|w|\le 10^9,端点在11..nn。

样例输入

1 1
1 1 -10

样例输出

0

样例输入 2

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

样例输出 2

1

样例说明 2

两个原有连通块分别选择费用 33 与 −2-2 的边,总费用为 11。