CF1684E.MEX vs DIFF

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given an array aa of nn non-negative integers. In one operation you can change any number in the array to any other non-negative integer.

Let's define the cost of the array as DIFF⁡(a)−MEX⁡(a)\operatorname{DIFF}(a) - \operatorname{MEX}(a), where MEX⁡\operatorname{MEX} of a set of non-negative integers is the smallest non-negative integer not present in the set, and DIFF⁡\operatorname{DIFF} is the number of different numbers in the array.

For example, MEX⁡(1,2,3)=0\operatorname{MEX}({1, 2, 3}) = 0, MEX⁡(0,1,2,4,5)=3\operatorname{MEX}({0, 1, 2, 4, 5}) = 3.

You should find the minimal cost of the array aa if you are allowed to make at most kk operations.

给你一个包含 nn 个非负整数的数组 aa。在一次操作中,你可以将数组中的任意一个数改为任意其他非负整数。

我们定义数组的代价为 DIFF⁡(a)−MEX⁡(a)\operatorname{DIFF}(a) - \operatorname{MEX}(a),其中 MEX⁡\operatorname{MEX} 表示一组非负整数的“最小缺失非负整数”(即不在该集合中的最小非负整数),而 DIFF⁡\operatorname{DIFF} 表示数组中不同数字的个数。

例如,MEX⁡(1,2,3)=0\operatorname{MEX}({1, 2, 3}) = 0,MEX⁡(0,1,2,4,5)=3\operatorname{MEX}({0, 1, 2, 4, 5}) = 3。

你最多可以执行 kk 次操作,求数组 aa 的最小可能代价。

输入格式

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. Description of the test cases follows.

The first line of each test case contains two integers nn and kk (1≤n≤1051 \le n \le 10^5, 0≤k≤1050 \le k \le 10^5) — the length of the array aa and the number of operations that you are allowed to make.

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \ldots, a_n (0≤ai≤1090 \le a_i \le 10^9) — the elements of the array aa.

It is guaranteed that the sum of nn over all test cases does not exceed 10510^5.

输入包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 kk(1≤n≤1051 \le n \le 10^5,0≤k≤1050 \le k \le 10^5),分别表示数组 aa 的长度以及允许执行的操作次数。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1090 \le a_i \le 10^9),表示数组 aa 的元素。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

For each test case output a single integer — minimal cost that it is possible to get making at most kk operations.

对于每个测试用例,输出一个整数——在最多进行 kk 次操作的前提下所能达到的最小代价。

输入输出样例

  • 输入#1

    4
    4 1
    3 0 1 2
    4 1
    0 2 4 5
    7 2
    4 13 0 0 13 1337 1000000000
    6 2
    1 2 8 0 0 0

    输出#1

    0
    1
    2
    0

说明/提示

In the first test case no operations are needed to minimize the value of DIFF⁡−MEX⁡\operatorname{DIFF} - \operatorname{MEX}.

In the second test case it is possible to replace 55 by 11. After that the array aa is [0, 2, 4, 1][0,\, 2,\, 4,\, 1], DIFF⁡=4\operatorname{DIFF} = 4, MEX⁡=MEX⁡(0,1,2,4)=3\operatorname{MEX} = \operatorname{MEX}({0, 1, 2, 4}) = 3, so the answer is 11.

In the third test case one possible array aa is [4, 13, 0, 0, 13, 1, 2][4,\, 13,\, 0,\, 0,\, 13,\, 1,\, 2], DIFF⁡=5\operatorname{DIFF} = 5, MEX⁡=3\operatorname{MEX} = 3.

In the fourth test case one possible array aa is [1, 2, 3, 0, 0, 0][1,\, 2,\, 3,\, 0,\, 0,\, 0].

在第一个测试用例中,无需执行任何操作即可最小化 DIFF⁡−MEX⁡\operatorname{DIFF} - \operatorname{MEX} 的值。

在第二个测试用例中,可以将 55 替换为 11。替换后数组 aa 变为 [0, 2, 4, 1][0,\, 2,\, 4,\, 1],此时 DIFF⁡=4\operatorname{DIFF} = 4,MEX⁡=MEX⁡({0,1,2,4})=3\operatorname{MEX} = \operatorname{MEX}(\{0, 1, 2, 4\}) = 3,因此答案为 11。

在第三个测试用例中,一个可能的数组 aa 是 [4, 13, 0, 0, 13, 1, 2][4,\, 13,\, 0,\, 0,\, 13,\, 1,\, 2],此时 DIFF⁡=5\operatorname{DIFF} = 5,MEX⁡=3\operatorname{MEX} = 3。

在第四个测试用例中,一个可能的数组 aa 是 [1, 2, 3, 0, 0, 0][1,\, 2,\, 3,\, 0,\, 0,\, 0]。

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

首页