#1144. 刺绣工坊订单分配

刺绣工坊订单分配

第4题:刺绣工坊订单分配

题目背景

刺绣工坊有 n 台机器,需要完成 k 个订单。每个订单有一个处理时间(整数),订单必须按输入顺序分配给机器,不可打乱。每台机器一次只能处理一个订单,一旦分配,该订单的处理时间会累加到这台机器的总工作时间上。你需要决定将每个订单分配给哪台机器,使得所有机器中最晚的完成时间尽可能小。输出这个最小化的最晚完成时间。

题目描述

输入第一行两个整数 nk,分别表示机器数量和订单数量。 第二行 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 ≤ 10
  • 1 ≤ k ≤ 10^4
  • 1 ≤ 每个订单处理时间 ≤ 10^6
  • 本题可以使用贪心算法(每次将当前订单分配给当前总耗时最小的机器)得到最优解。