#1144. 刺绣工坊订单分配
刺绣工坊订单分配
第4题:刺绣工坊订单分配
题目背景
刺绣工坊有 n 台机器,需要完成 k 个订单。每个订单有一个处理时间(整数),订单必须按输入顺序分配给机器,不可打乱。每台机器一次只能处理一个订单,一旦分配,该订单的处理时间会累加到这台机器的总工作时间上。你需要决定将每个订单分配给哪台机器,使得所有机器中最晚的完成时间尽可能小。输出这个最小化的最晚完成时间。
题目描述
输入第一行两个整数 n 和 k,分别表示机器数量和订单数量。
第二行 k 个整数,表示每个订单的处理时间。
你需要设计分配方案,使得最大完成时间最小,输出该最小值。
输入格式
第一行:两个整数 n, k,用空格分隔。
第二行:k 个整数,表示每个订单的处理时间。
输出格式
一个整数,表示最小化的最晚完成时间。
输入输出样例
样例输入 #1
2 5
3 2 4 1 5
样例输出 #1
8
样例解释 #1
一种最佳分配方案:
- 机器1:订单1(3) + 订单3(4) + 订单4(1) → 总时间 8
- 机器2:订单2(2) + 订单5(5) → 总时间 7 最大完成时间为 8,无法更小。
样例输入 #2
1 3
10 20 30
样例输出 #2
60
说明/提示
1 ≤ n ≤ 101 ≤ k ≤ 10^41 ≤ 每个订单处理时间 ≤ 10^6- 本题可以使用贪心算法(每次将当前订单分配给当前总耗时最小的机器)得到最优解。