#1490. 建好的道路-Kruskal
建好的道路-Kruskal
🔗 《先建好的道路与最省钱补全》🧩(并查集预连通块 + Kruskal)
题目背景
在 兔猫信奥学院,加菲老师修了一部分道路(已经完工、不能拆),小兔和小猫要在此基础上再修一些道路,让所有城市最终互相可达,并且新增花费最少。
题目描述
有 个城市,已经有 条道路建好(无向、费用视为 0 且必须保留)。 另外有 条可选道路,每条可选道路 需要花费 。
你需要选择若干条可选道路,使得最终所有城市连通,并使新增总花费最小。
若无论如何都无法连通,输出 -1。(本题数据默认保证可连通,你仍需在程序里判断。)
输入格式
第一行三个整数 。
接下来 行,每行两个整数 表示已建好的一条道路(费用为 0)。
接下来 行,每行三个整数 表示一条可选道路及其费用。
输出格式
输出一个整数:最小新增总花费(或 -1)。
数据范围
- 允许重边
- 已建道路可能形成环
样例 1
4 3 1
1 2
2 3 5
3 4 1
1 4 10
6
样例 1 解释
已建好 。选 (1)和 (5),总新增花费 最小。
样例 2
5 4 4
1 2
2 3
3 4
4 5
1 3 100
2 4 100
1 5 100
2 5 100
0
样例 2 解释
已建道路已经把所有点连通,因此无需新增,答案为 0。