华为od机试C卷【电脑病毒感染】

这是一道华为在线测评(OD)中的算法题,涉及到计算机网络中病毒传播的模拟问题。给定局域网中电脑的连接关系及感染时间,需要计算病毒至少需要多久才能感染所有电脑,若无法全部感染则返回-1。输入包括电脑数量N、连接数M以及具体的连接时间,输出是最短感染时间。示例输入为4台电脑,3条连接,最终输出为2,表示经过2单位时间可以感染所有电脑。
摘要由CSDN通过智能技术生成

目录

题目

思路

code


题目

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

给定一个数组 times 表示一台电脑把相邻电脑感染所用的时间如图: path[i] = {i,j,t} 表示: 电脑i -> j,电脑i 上的病毒感染j,需要时间 t。

输入描述

第一行输入一个整数N ,表示局域网内电脑个数 N,1<= N<= 200 :第二行输入一个整数M ,表示有 M 条 网络连接 ;

接下来M行 ,每行输入为 i,j,t 。表示电脑i感染电脑 需要时间t。 (1 <=i,j <= N)最后一行为病毒所在的电脑编号

输出描述

输出最少需要多少时间才能感染全部电脑,如果不存在输出 -1

示例1:

输入

4

3

2 1 1

2 3 1

3 4 1

2

输出

2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值