4.充分发挥Gpu算力

为了充分发挥Gpu算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,
数组元素表示在这1s内新增的任务个数,且每秒都有新增任务,
假设GPU最多一次执行n个任务,一次执行耗时1s,在保证Gpu不空闲的情况下,最少需要多长时间执行完成。

输入描述
第一个参数为gpu最多执行的任务个数, 取值范围1~10000
第二个参数为任务数组的长度,取值范围1~10000
第三个参数为任务数组,数字范围1~10000

输出描述
执行完所有任务需要多少秒

例子
输入
3
5
1 2 3 4 5
输出
6

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

例子2
输入
4
5
5 4 1 1 1
输出
5

说明,一次最多执行4个任务  最少耗时5s

 

查看代码

import java.util.*;

public class Demo4 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        while(sc.hasNext()){
            int k = Integer.parseInt(sc.nextLine());
            int len = Integer.parseInt(sc.nextLine());
            String[] split = sc.nextLine().split(" ");

            int[] ints = new int[len];
            for(int i = 0; i < len; i++){
                ints[i] = Integer.parseInt(split[i]);
            }

            int more = 0;
            int time = 0;
            for(int i : ints){  //关键对变量more的处理
                if(more + i > k) more = more + i - k;
                else more = 0;
                time++;
            }
            while(more > 0){
                more -= k;
                time++;
            }
            System.out.println(time);
        }
    }
}

 

问题的关键在于,用more来记录上一次操作对下一次的影响。

 

posted @ 2022-03-24 00:50  Jukim  阅读(1517)  评论(0编辑  收藏  举报