【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 
#include 
#include 

using namespace std;

int main(){
    int n, m;
    cin >> n >> m;
    vector 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;
}

你可能感兴趣的:(JS,算法,数据结构,c++)