【JS】执行时长(100分) |思路参考+代码解析(C++)

题目

为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。

假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。

题目输入

  • 第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]
  • 第二个参数为任务数组长度,取值范围[1, 10000]
  • 第三个参数为任务数组,数字范围[1, 10000]

题目输出

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

实例

3
5
1 2 3 4 5

第1s:处理1

第2s:处理2

第3s:处理3

第4s:处理3,剩余4-3=1

第5s:处理3,剩余5+1-3=3

第5s:执行3,剩余3-3=0  ------结束

输出:6

4
5
5 4 1 1 1

第1s:处理4,剩余5-4=1

第2s:处理4,剩余4+1-4=1

第3s:处理2,剩余1+1

第4s:处理1,

第5s:处理1,

第5s:执行1,  ------结束

输出:5

题目解析

题目

题目代码

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main(){
    int n, m;
    cin >> n >> m;
    vector<int> nums(m);
    for(int i = 0; i < m; i++){
        cin >> nums[i];
    }
    
    int residue = 0;
    for(auto num:nums){
        if(residue + num <= n){
            residue = 0;
        }else if(residue + num > n){
            residue += num - n;
        }    
    }
    cout << m + (residue + n -1)/n;//m+向上取整
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

l939035548

一个小目标不多,一分不少。。。

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

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

打赏作者

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

抵扣说明:

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

余额充值