AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2520. GPU调度

简单通过率 53% · 提交 304 · 通过 162
模拟数学

小慕正在优化他的GPU计算集群。为了充分利用GPU算力,他需要尽可能多地将任务分配给GPU执行。现在有一个任务数组,数组中的每个元素表示在这一秒内新增的任务数量,且每秒都会有新任务到来。假设GPU一次最多可以执行n个任务,每次执行需要1秒的时间。在保证GPU始终不空闲的情况下,小慕想知道最少需要多少秒才能把所有任务执行完成。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第一个参数为 GPU 最多执行的任务个数 </p> <p> 取值范围1 ~ 10000 </p> <p> 第二个参数为任务数组的长度 </p> <p> 取值范围1 ~ 10000 </p> <p> 第三个参数为任务数组 </p> <p> 数字范围1 ~ 10000 </p>

输出描述

执行完所有任务需要多少秒

示例

示例 1

输入

3
5
1 2 3 4 5

输出

6

说明:一次最多执行3个任务 最少耗时6s

示例 2

输入

4
5
5 4 1 1 1

输出

5

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
GPU调度示例:一次最多执行3个任务 第1秒 第2秒 第3秒 第4秒 第5秒 第6秒 1 2 3 4 5 每秒新增任务数 执行3个 执行3个 执行3个 执行3个 执行3个 执行3个 GPU每秒执行3个任务(最多) 剩余任务: 0 0 0 1 3 0 每执行完一秒,剩余任务减少(最多减3) 总耗时 = 6秒 (示例:输入 3, 5, [1,2,3,4,5] 输出 6)
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「GPU调度」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。