严格次小生成树
时间限制:1秒 内存限制:256M
【问题描述】
小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。
正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集是EM,严格次小生成树选择的边集是ES,那么需要满足:(value(e)表示边e的权值)
这下小C蒙了,他找到了你,希望你帮他解决这个问题。
【输入格式】
第一行包含两个整数 \(N\) 和 \(M\),表示无向图的点数与边数。 接下来 \(M\) 行,每行三个数 \(x\ y\ z\) 表示,点 \(x\) 和点 \(y\) 之间有一条边,边的权值为 \(z\)。
【输出格式】
包含一行,仅一个数,表示严格次小生成树的边权和。(数据保证必定存在严格次小生成树)
【输入输出样例】
Input
5 6
1 2 1
1 3 2
2 4 3
3 5 4
3 4 3
4 5 6
Output
11
【数据说明】
数据中无向图无自环;
50% 的数据 \(N≤2 000,M≤3 000\);
80% 的数据 \(N≤50 000, M≤100 000\);
100% 的数据 \(N≤100 000, M≤300 000\) ,边权值非负且不超过 \(10^9\) 。
【来源】
Mr.he