华为od机试B卷复用【流水线调度】

这篇博客讨论了华为在线测评(OD)中的一道算法题,涉及流水线调度策略。题目要求根据给定的流水线数量m和作业处理时间,计算完成所有作业的最小耗时。当作业数超过流水线数时,优先处理处理时间最短的作业。博客给出了输入输出描述、示例及解题思路。

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

目录

题目

思路

code


题目

一个工厂有m条流水线 ,来并行完成n个独立的作业,该工厂设置了一个调度系统,在安排作业时,总是优先执行处理时间最短的作业。

现给定流水线个数m,需要完成的作业数n, 每个作业的处理时间分别为t1,t2…tn。请你编程计算处理完所有作业的耗时为多少?

当n>m时,首先处理时间短的m个作业进入流水线,其他的等待,当某个作业完成时,依次从剩余作业中取处理时间最短的进入处理。

输入描述:

第一行为2个整数(采用空格分隔),分别表示流水线个数m和作业数n 第二行输入n个整数(采用空格分隔),表示每个作业的处理时长t1,t2…tn。

0< m,n<100

0<t1,t2…tn<100

注:保证输入都是合法的。

输出描述:

输出处理完所有作业的总时长

示例

输入:

3 5

8 4 3 2 10

输出:

13

说明:

先安排时间为2、3、4的3个作业。

第一条流水线先完成作业,然后调度剩余时间最短的作业8。

第二条流水线完成作业,然后调度剩余时间最短的作业10。

总工耗时就是第二条流水线完成作业的时间13(3+10)。

思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值