题解
题目描述
实验室需要执行一批计算任务,每个任务会消耗一定的运行时长。现有两台计算机可以执行这些任务,计算机 A 的性能是计算机 B 的两倍,即同样一个任务在计算机 B 上需要的运行时长是 A 的 2 倍。任务需要串行执行,每台计算机同一时刻最多能运行一个任务,同一个任务只能在 A 或 B 上运行完成,不能拆分。
请合理分配这些任务到 A 和 B 上,并返回运行完成所有任务所需的最小时间。
思路
P2629.完成计算任务的最短时间
题目内容
实验室需要执行一批计算任务,每个任务会消耗一定的运行时长。
现在有两台计算机可以执行这些计算任务,但是两个计算机的性能并不相同:
- 计算机 A 是计算机 B 性能的两倍,即同样一个任务在计算机 B 上需要的运行时长是 A 的 2 倍。
任务是串行的,每个计算机同一时刻最多能运行一个任务;同一个任务只能在 A 或 B 上一次运行完成,不能拆分成多段。
请你合理分配这些任务到 A 和 B 上,并返回运行完成这些计算任务所需要的最小时间。
输入描述
1.每个计算任务在计算机 A 上运行需要的时长,以空格隔开。
2.运行时长单位是分钟,都是正整数,取值范围是 [1,1000] 。
3.任务总数范围是 [1,1000] 。
输出描述
所有计算任务全部完成需要的最小分钟数。
样例1
输入
20 15 10
输出
30
说明
A 上运行第 1、3 个作业,耗时 30 分钟
B 上运行第 2 个作业,耗时 15∗2=30 分钟
总共耗时 30 分钟。
样例2
输入
6 15 22 13
输出
38
说明
A 上运行第 2、3 个作业,耗时 37 分钟
B 上运行第 1、4 个作业,耗时 38 分钟
总共耗时 38 分钟。