华为OD机试 - 最小传递延迟(Python)| 代码编写思路+核心知识点

本文详细介绍了华为OD统一考试中的最小传递延迟问题,包括题目描述、输入输出示例、核心知识点(建图和DFS搜索)及Python代码实现。通过深度优先搜索在有向无环图中寻找源节点到目的节点的最小延迟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OD统一考试:最小传递延迟

题目

通讯网络中有 N 个网络节点,用 1 ~ N 进行标识
网络通过一个有向无环图进行表示,其中图的边的值,表示节点之间的消息传递延迟
现给定相连节点之间的延时列表 times[i]={u,v,w}
其中 u 表示源节点,v 表示目的节点,w 表示 uv 之间的消息传递延时
请计算给定源节点到目的节点的最小传递延迟
如果目的节点不可达请返回 -1
注意:N 的取值范围是 1 ~ 100
延迟 times 列表长度不超过6000
1 <= u,v <= N,0 <= w <= 100

输入

输入第一行为两个正整数,分别为网络节点个数 N 以及延时列表长度 M ,用空格分隔
接下来的 M 行为两个节点间的延时列表 [u,v,w]
输入的最后一行为两个正整数 uv 分别表示源节点和目的节点

输出

输出一个整数表示源节点到目的节点的最小延时

示例一

输入

3 3
1 2 11
2 3 13
1 3 50
1 3

输出

24

说明

1~3 的延时是 501~2~3 的延时是 11+13=24
所以 1~3 的最小延时就是 24

示例二

输入

5 7
1 2 11
2 3 13
1 3 50
3 4 55
4 5 35
2 4 15
3 5 40
1 5

输出

61

核心知识点

  • 建图:通过字典的方式建立有向图,并且存储每条边的权
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

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

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

打赏作者

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

抵扣说明:

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

余额充值