最新华为OD机试真题-执行时长(100分)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新 华为OD机试-D卷 的三语言AC题解

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

=> 执行时长(100分) <=

华为OD

🌍 评测功能需要 =>订阅专栏<= 后联系清隆解锁~

🍓OJ题目截图

alt

🌲 执行时长

问题描述

K小姐是一位资深的GPU程序员。为了充分发挥GPU的算力,她需要尽可能多地将任务交给GPU执行。假设每秒都会有新的任务到来,任务的数量存储在一个数组中,其中数组的第 个元素表示在第 秒新增的任务个数。

K小姐的GPU最多一次可以执行 个任务,每次执行耗时 秒。在保证GPU不空闲的情况下,K小姐想知道最少需要多长时间才能执行完所有任务。

输入格式

第一行包含一个正整数 ,表示GPU一次最多可以执行的任务个数,取值范围为

第二行包含一个正整数 ,表示任务数组的长度,取值范围为

第三行包含 个正整数,表示任务数组,其中第 个数字表示在第 秒新增的任务个数,取值范围为

输出格式

输出一个正整数,表示执行完所有任务最少需要的秒数。

样例输入 1

3
5
1 2 3 4 5

样例输出 1

6

样例输入 2

4
5
5 4 1 1 1

样例输出 2

5

数据范围

  • 任务数组中的元素

题解

我们可以模拟整个过程。对于每一秒,如果新增任务数小于 ,那么GPU可以在当前秒内执行完所有新增任务。否则,GPU会在当前秒执行 个任务,剩余的任务需要在后续的秒数中执行。

具体做法是,我们用一个变量 记录剩余未执行的任务数。初始时 。对于每一秒,如果新增任务数 小于 ,我们将 重置为 。否则,我们将 增加 。最后,总的执行时间就是任务数组的长度 ,加上将剩余任务执行完所需的秒数

参考代码

  • Python
n = int(input())
m = int(input())
tasks = list(map(int, input().split()))

remain = 0
for x in tasks:
    if x < n:
        remain = 0
    else:
        remain += x - n

print(m + (remain + n - 1) // n)
  • Java
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] tasks = new int[m];
        for (int i = 0; i < m; i++) {
            tasks[i] = sc.nextInt();
        }

        int remain = 0;
        for (int x : tasks) {
            if (x < n) {
                remain = 0;
            } else {
                remain += x - n;
            }
        }

        System.out.println(m + (remain + n - 1) / n);
    }
}
  • Cpp
#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> tasks(m);
    for (int i = 0; i < m; i++) {
        cin >> tasks[i];
    }

    int remain = 0;
    for (int x : tasks) {
        if (x < n) {
            remain = 0;
        } else {
            remain += x - n;
        }
    }

    cout << m + (remain + n - 1) / n << endl;
    return 0;
}
#华为##华为OD##春招##秋招##笔试#
最新华为OD机试-D卷 文章被收录于专栏

本专栏给大家提供了华为2024最新华为OD-C/D卷的题目汇总和(Java/Cpp/Python)三语言解析 + 提供OJ在线评测

全部评论
🌍 评测功能需要订阅专栏后 ,私信联系清隆解锁~
点赞
送花
回复 分享
发布于 06-28 19:20 浙江

相关推荐

1 3 评论
分享
牛客网
牛客企业服务