CF1701C.Schedule Management

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

There are nn workers and mm tasks. The workers are numbered from 11 to nn. Each task ii has a value aia_i — the index of worker who is proficient in this task.

Every task should have a worker assigned to it. If a worker is proficient in the task, they complete it in 11 hour. Otherwise, it takes them 22 hours.

The workers work in parallel, independently of each other. Each worker can only work on one task at once.

Assign the workers to all tasks in such a way that the tasks are completed as early as possible. The work starts at time 00. What's the minimum time all tasks can be completed by?

有 nn 名工人和 mm 项任务。工人编号为 11 到 nn。每项任务 ii 有一个值 aia_i —— 表示擅长该任务的工人的编号。

每项任务必须分配一名工人来完成。若某工人擅长该项任务,则他/她可在 11 小时内完成;否则需要 22 小时。

所有工人并行、独立工作,且每位工人同一时刻只能处理一项任务。

请将工人分配给所有任务,使得所有任务尽可能早地完成(工作从时刻 00 开始)。问:所有任务全部完成所需的最短时间是多少?

输入格式

The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of testcases.

The first line of each testcase contains two integers nn and mm (1≤n≤m≤2⋅1051 \le n \le m \le 2 \cdot 10^5) — the number of workers and the number of tasks.

The second line contains mm integers a1,a2,…,ama_1, a_2, \dots, a_m (1≤ai≤n1 \le a_i \le n) — the index of the worker proficient in the ii-th task.

The sum of mm over all testcases doesn't exceed 2⋅1052 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n≤m≤2⋅1051 \le n \le m \le 2 \cdot 10^5)—— 工人的数量和任务的数量。

每个测试用例的第二行包含 mm 个整数 a1,a2,…,ama_1, a_2, \dots, a_m(1≤ai≤n1 \le a_i \le n)—— 表示第 ii 个任务由哪位工人擅长完成。

所有测试用例中 mm 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

For each testcase, print a single integer — the minimum time all tasks can be completed by.

对于每个测试用例,输出一个整数——所有任务能够被完成的最短时间。

输入输出样例

  • 输入#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

说明/提示

In the first testcase, the first worker works on tasks 11 and 33, and the second worker works on tasks 22 and 44. Since they both are proficient in the corresponding tasks, they take 11 hour on each. Both of them complete 22 tasks in 22 hours. Thus, all tasks are completed by 22 hours.

In the second testcase, it's optimal to assign the first worker to tasks 1,21, 2 and 33 and the second worker to task 44. The first worker spends 33 hours, the second worker spends 22 hours (since they are not proficient in the taken task).

In the third example, each worker can be assigned to the task they are proficient at. Thus, each of them complete their task in 11 hour.

在第一个测试用例中,第一位工人负责任务 11 和 33,第二位工人负责任务 22 和 44。由于他们各自都精通所分配的任务,因此每人每项任务耗时 11 小时。两人都在 22 小时内完成了 22 项任务。因此,所有任务均在 22 小时内完成。

在第二个测试用例中,最优分配方案是:将第一位工人分配至任务 1,21, 2 和 33,第二位工人分配至任务 44。第一位工人耗时 33 小时,第二位工人耗时 22 小时(因其不精通所分配的任务)。

在第三个示例中,每位工人均可被分配至其擅长的任务。因此,每人均在 11 小时内完成各自的任务。

输入解题思路,AI测评打分。不知道怎么写?

首页