当前位置:   article > 正文

【免费题库】华为OD机试 - 电脑病毒感染(Java & JS & Python & C & C++)_一个局域网内有很多台电脑,分别标注为0 - n-1的数字。相连接的电脑距离不一样,所

一个局域网内有很多台电脑,分别标注为0 - n-1的数字。相连接的电脑距离不一样,所

题目描述

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。

其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1。

给定一个数组 times 表示一台电脑把相邻电脑感染所用的时间。

如图:path[i] = {i, j, t} 表示:电脑 i->j,电脑 i 上的病毒感染 j,需要时间 t。

输入描述

4
3
2 1 1
2 3 1
3 4 1
2

输出描述

2
用例1
输入
4
3
2 1 1
2 3 1
3 4 1
2
输出
2
说明
第一个参数:局域网内电脑个数N,1 ≤ N ≤ 200;

第二个参数:总共多少条网络连接

第三个 2 1 1 表示2->1时间为1

第六行:表示病毒最开始所在电脑号2

解题思路:

  1. 首先,我们需要将输入的网络连接信息存储在一个邻接矩阵中,以便后续处理。
  2. 然后,我们需要使用Floyd-Warshall算法计算所有电脑之间的最短感染时间。
  3. 最后,我们找到最长的最短感染时间,即为感染网络内所有电脑所需的最少时间。如果存在无法感染的电脑,则返回-1。

Java代码:</

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/769036
推荐阅读
相关标签
  

闽ICP备14008679号