修路

road.cpp

【问题描述】

ljz 当上了某国家的总统!
这个国家有\(n\)个城市,\(n-1\)条双向道路,每条路有长度,它们共同构成了一棵树。ljz 想要改善该国家的交通状况,于是她要修路。
因为 ljz 是个强迫症,所以想她尽可能地多修路,直到把原有的树扩充为完全图为止。也就是说 ljz 总共要修[n*(n-1)/2-(n-1)]条路,每条路的长度可以任意指定。
因为 ljz 很念旧,所以她想要最后形成的完全图满足最初的树仍是完全图的唯一最小生成树。
因为 ljz 没有很多钱,所以她想要新修的路的长度之和尽可能小。
那么,在最后形成的完全图满足最初的树仍是完全图的唯一最小生成树的情况下,新修的路的长度之和最小是多少呢?

【输入格式】

第 1 行,1 个整数 n,表示共有 n 个城市,从 1 到 n 编号。
接下来 n-1 行,每行 3 个整数 u,v,w,表示城市 u 与城市 v 之间有 1 条长度为 w 的路。

【输出格式】

输出文件共 1 行,表示答案。

【输入输出样例 1】

road.in

4
1 2 3
2 3 4
3 4 5

road.out

17

【数据规模与约定】

对于 10%的数据,\(1≤n≤20\)。
对于 30%的数据,\(1≤n≤5000\)。
对于 100%的数据,\(1≤n≤200000,1≤u,v≤n,1≤w≤1000000\)。

信息

ID
1076
难度
9
分类
(无)
标签
(无)
递交数
6
已通过
2
通过率
33%
上传者