AlgoMooc
← 返回题库

P4500. 5G 网络建设

困难通过率 42% · 提交 175 · 通过 74
图论贪心并查集最小生成树

小慕正在参与一个 5G 网络建设项目,需要在城市中选取 N 个地点部署 5G 基站,这些基站的编号固定为 1 到 N。接下来,小慕需要将各个基站用光纤连接起来,以确保它们能够互联互通。不同基站之间铺设光纤的成本各不相同,而且有些基站之间已经存在现成的光纤连接。请你帮小慕设计一个算法,计算出连通所有基站所需的最小总成本。 注意,基站的连通具有传递性:如果基站 A 与基站 B 之间铺设了光纤,基站 B 与基站 C 之间也铺设了光纤,那么基站 A 与基站 C 就可以视为互相连通。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行输入表示基站的个数 N,其中 0 < N <= 20 第二行输入表示具备光纤直连条件的基站对的数目 M,其中 0 < M < N * (N - 1) / 2 第三行开始连续输入 M 行数据,格式为 X Y Z P,其中 X Y 表示基站的编号,0 < X <= N, 0 < Y <= N 且 X 不等于 Y, Z 表示在 X Y 之间架设光纤的成本,其中 0 < Z < 100,P 表示是否已存在光纤连接,0 表示未连接, 1 表示已连接。

输出描述

如果给定条件,可以建设成功互联互通的 5G 网络,则输出最小的建设成本, 如果给定条件,无法建设成功互联互通的 5G 网络,则输出-1

示例

示例 1

输入

3
3
1 2 3 0
1 3 1 0
2 3 5 0

输出

4

说明:只需要在 1,2 以及 2,3 基站之间铺设光纤,其成本为 3+1=4

示例 2

输入

3
1
1 2 5 0

输出

-1

说明:3 基站无法与其他基站连接,输出-1

示例 3

输入

3
3
1 2 3 0
1 3 1 0
2 3 5 1

输出

1

说明:2,3 基站已有光纤相连,只有要再 1,3 站点 2 向铺设,其成本为 1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「5G 网络建设」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。