通过率 50% · 提交 10 · 通过 5
在魔法大陆的炼金工坊中,存在三位处理者:一位与两位普通炼金师(普通处理单元)。他们需要协同完成一批魔法卷轴的能量提炼任务。 * 巨龙的为 `2` 单位/秒(每秒可以处理 2 单位的卷轴能量)。 * 每位炼金师的炼化速度为 `1` 单位/秒(每秒可以处理 1 单位的卷轴能量)。 现有一组魔法卷轴任务 `tasks`,其中 `tasks[i]` 表示第 `i` 个任务的能量大小(单位:能量单位)。 你需要为这些任务分配最优方案,遵循以下目标: 1. 首先,使所有任务完成的最短。 2. 如果存在多种最优方案,则选择其中巨龙承担的任务数最少的方案。 每个任务只能由其中一位处理者负责,且在处理过程中不能转移。 最终输出结果为: * `minTime`:所有任务完成所需的最短总时长 * `dragonTaskCount`:巨龙处理的任务数量 以 `[minTime, dragonTaskCount]` 的形式返回答案。 输入: * 输入的第一行包含一个整数 `n`,表示任务数量。 * 输入的第二行包含 `n` 个整数,分别表示每个任务的能量大小。 * `0 < n <= 10` * `0 < tasks[i] < 2^31 - 1` 且保证所有 `tasks[i]` 为偶数 * 保证结果满足 `minTime < 2^31` 输出: * 输出两个整数,分别为 `minTime` 与 `dragonTaskCount`。
这类题属于华为可信认证科目一方向中「可信 / 回溯」方向的高频题型,通常考察对「可信 / 回溯」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
n,表示任务数量。n 个整数,分别表示每个任务的能量大小。0 < n <= 100 < tasks[i] < 2^31 - 1 且保证所有 tasks[i] 为偶数minTime < 2^31minTime 与 dragonTaskCount。示例 1
输入示例
8 6 10 14 8 12 20 16 18
输出示例
26 3
2 (炼金师B) → 6
idx1: 10 → 1 (炼金师A) → 10
idx2: 14 → 0 (巨龙) → 14/2 = 7
idx3: 8 → 2 (炼金师B) → 8
idx4: 12 → 2 (炼金师B) → 12
idx5: 20 → 0 (巨龙) → 20/2 = 10
idx6: 16 → 1 (炼金师A) → 16
idx7: 18 → 0 (巨龙) → 18/2 = 9
巨龙(0):7 + 10 + 9 = 26(承担任务数 3 个)
炼金师A(1):10 + 16 = 26
炼金师B(2):6 + 8 + 12 = 26
因此 minTime = max(26, 26, 26) = 26,accelTaskCount = 3。
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有