#1156. 调度(dispatch)
调度(dispatch)
题目描述
共有 名工人和 个任务。工人的编号从 到 。
每项任务 都有一个值 —— 表示第 个工人精通第 个任务。每个任务都需要有一名工人负责。
如果工人精通该任务,他们会在 小时内完成任务。否则,他们需要花费 小时。
工人们并行工作,彼此独立。每个工人一次只能完成一个任务。
请你将所有工人进行调度,以便尽早完成任务。工作从时间 开始。请问完成所有任务的最短时间是多少?
输入格式
第一行包含一个整数 ,表示测试用例数。
接下来对于每个测试用例:
- 第一行包含两个整数 和 ,分别表示工人数和任务数。
- 第二行包含 个整数 —— 表示第 个工人精通第 个任务。
输出格式
对于每个测试用例,输出一行一个整数,即完成所有任务的最短时间。
样例输入 1
4
2 4
1 2 1 2
2 4
1 1 1 1
5 5
5 1 3 2 4
1 1
1
样例输出 1
2
3
1
1
说明
样例解释
- 第一组:第一个工人负责第 和 项任务,第二个工人负责第 和 项任务。由于他们都精通相应的任务,因此每个任务都需要花费 小时。两人都在 小时内完成 项任务。因此,所有任务都在 小时内完成。
- 第二组:分配第一名工人完成第 和 项任务,第二名工人完成第 项任务是最佳方案。第一名工人花费了 个小时,第二名工人花费了 个小时(因为他们并不精通所承担的任务)。
- 第三组:每个工人都可以被分配到自己擅长的任务。因此,每个人都能在 小时内完成任务。
其它样例说明
- 样例 2:见选手目录下的
dispatch/dispatch2.in与dispatch/dispatch2.ans,该测试用例满足测试点 的约束条件。 - 样例 3:见选手目录下的
dispatch/dispatch3.in与dispatch/dispatch3.ans,该测试用例满足测试点 的约束条件。 - 样例 4:见选手目录下的
dispatch/dispatch4.in与dispatch/dispatch4.ans,该测试用例满足测试点 的约束条件。
数据范围
对于 的数据,满足以下约束条件:
各测试点的附加限制如下表所示:
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| 互不相同 | |||
| 全部相同 | |||
| 无 | |||
相关
在下列比赛中: