华为OD机试真题-修建高铁最低成本【2023Q1】

该博客介绍了华为在线测评(OD)中的一道实际编程题,涉及修建高铁以实现城市圈内两两互联的最低成本问题。解题思路包括利用并查集初始化城市连接,通过Kruskal算法找到最小生成树,以达到最低修建成本。示例展示了输入输出格式及具体操作步骤。
摘要由CSDN通过智能技术生成

题目描述

高铁城市圈对人们的出行、经济的拉动效果明显。
每年都会规划新的高铁城市圈建设。在给定城市数量,可建设高铁的两城市间的修建成本列表、以及结合城市商业价值会固定建设的两城市建高铁。
请你设计算法,达到修建城市高铁的最低成本。注意,需要满足城市圈内城市间两两互联可达(通过其他城市中转可达也属于满足条件)。
输入描述:
1、第一行,包含此城市圈中城市的数量、可建设高铁的两城市间修建成本列表数量、必建高铁的城市列表。三个数字用空格间隔。
2、可建设高铁的两城市间的修建成本列表,为多行输入数据,格式为3个数字,用空格分隔,长度不超过1000。
3、 固定要修建的高铁城市列表,是上面参数2的子集,可能为多行,每行输入为2个数字,以空格分隔。
城市id从1开始编号,建设成本的取值为正整数,取值范围均不会超过1000
输出描述:
修建城市圈高铁的最低成本,正整数。如果城市圈内存在两城市之间无法互联,则返回-1。
示例1
输入
3 3 0
1 2 10
1 3 100
2 3 50
输出
60
解释:
3 3 0城市圈数量为3,表示城市id分别为1,2,3
1 2 10城市1,2间的高铁修建成本为10
1 3100城市1,3间的高铁修建成本为100
2 3 50城市2,3间的高铁修建成本为50
满足修建成本最低,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值