Problem F: f 星际网络

Problem F: f 星际网络

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

在遥远的 3025 年,人类已经殖民了 N 个星球(编号 1 到 N)。为了建立星际互联网,星际联盟规划了 M 条可能的双向量子通信航道。第 i 条航道连接星球 u_i 和 v_i,建设成本为 w_i。

为了让所有星球都能联通(即任意两个星球之间都可以通过一条或多条航道通信),联盟决定建设一个包含 N-1 条航道的通信网络(即生成树)。

虽然建设经费紧张,但联盟拥有一台“奇点发生器”。这台机器可以免费建设一条航道(即将该条航道的建设成本变为 0)。你可以在这 M 条规划航道中任意选择一条使用奇点发生器。

请问:在合理使用一次“奇点发生器”并选择合适的 N-1 条航道后,建设整个星际网络的最小总成本是多少?

Input

第一行包含两个整数 N 和 M,分别表示星球的数量和可能的航道数量。

接下来 M 行,每行包含三个整数 u, v, w,表示星球 u 和星球 v 之间有一条建设成本为 w 的航道。

数据保证图是连通的,且无重边和自环。

【数据范围】

对于 30% 的数据:N <= 100, M <= 1000。

对于 60% 的数据:N <= 2000, M <= 20000。

对于 100% 的数据:1 <=  N <= 10^5,  N-1 <= M <= 10^6,  1 <= w_i <= 10^9。

Output

输出一个整数,表示建设星际网络的最小总成本。

Sample Input Copy

4 5
1 2 10
1 3 20
2 4 30
3 4 100
1 4 5

Sample Output Copy

15

HINT

可选方案如下:

正常的最小生成树(不使用机器)边为:(1,4,5), (1,2,10), (1,3,20),总成本 35。

我们选择将边 (1,3)(成本20)用机器免费,成本变0。生成树总成本 5+10+0=15。

如果我们选择将边 (3,4)(成本100)免费,虽然这条边变0了,但它在MST中会替换掉 (1,3)。新生成树边为 (1,4,5), (1,2,10), (3,4,0),总成本也是 15。最小成本为 15。