SZ#G8M32. 道路拆除

提交4 通过1
通过率25%
时间限制2000ms
内存限制512MiB
    ID: 12053 传统题 2000ms 512MiB 尝试: 4 已通过: 1 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题最小生成树Kruskal负权边

题目描述

题目描述

小泽负责维护一个由 NN 个站点和 MM 条双向道路组成的网络。第 ii 条道路连接站点 AiA_i 与站点 BiB_i,其价值为整数 CiC_i。当前网络保证是连通的。

为了整理网络,小泽可以拆除任意一些道路,但拆除之后,所有站点仍必须互相可达。拆除道路所带来的收益按照它的价值计算:

  • Ci0C_i\ge0 时,拆除这条道路可以获得 CiC_i 的收益;
  • Ci<0C_i<0 时,拆除这条道路反而需要支付 Ci|C_i| 的费用,也就是收益为 CiC_i

没有被拆除的道路不会产生收益或费用。小泽希望在始终保持整个网络连通的条件下,使拆除道路获得的总收益最大。

请计算能够获得的最大总收益。

输入格式

第一行输入两个整数 N,MN,M

接下来 MM 行,第 ii 行输入三个整数 Ai,Bi,CiA_i,B_i,C_i,描述第 ii 条双向道路。

输出格式

输出一个整数,表示在剩余网络连通的条件下能够获得的最大总收益。

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

样例说明 #1

可以保留三条价值为 11 的道路,并拆除另外两条价值为 22 的道路,获得总收益 44

3 3
1 2 1
2 3 0
3 1 -1
1

样例说明 #2

保留价值为 001-1 的道路仍能连通全部站点,因此价值为 11 的道路可以拆除。

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

样例说明 #3

第二、三条道路都可以拆除:拆除价值为 22 的重边和价值为 33 的自环,共获得收益 55。本例说明图中可能出现重边与自环。

数据范围与约定

2N2×1052\le N\le2\times10^5N1M2×105N-1\le M\le2\times10^51Ai,BiN1\le A_i,B_i\le N109Ci109-10^9\le C_i\le10^9。输入图连通,可能存在重边与自环,输入中的所有数均为整数。