CF2021B.Maximize Mex

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 nn 的正整数数组 aa 和一个整数 xx。你可以进行如下的两步操作任意次(可能为零次):

  1. 选择一个下标 ii(1≤i≤n1 \leq i \leq n)。
  2. 将 aia_i 增加 xx,即 ai:=ai+xa_i := a_i + x。

请你在最优操作下,求出数组 aa 的最大 MEX⁡\operatorname{MEX} 值。

数组的 MEX⁡\operatorname{MEX}(最小未出现值)是指不在数组中的最小非负整数。例如:

  • [2,2,1][2,2,1] 的 MEX⁡\operatorname{MEX} 是 00,因为 00 不在数组中。
  • [3,1,0,1][3,1,0,1] 的 MEX⁡\operatorname{MEX} 是 22,因为 00 和 11 在数组中,但 22 不在数组中。
  • [0,3,1,2][0,3,1,2] 的 MEX⁡\operatorname{MEX} 是 44,因为 00、11、22 和 33 都在数组中,但 44 不在数组中。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤50001 \leq t \leq 5000),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 xx(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5,1≤x≤1091 \leq x \leq 10^9),分别表示数组的长度和操作中使用的整数。

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

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

输出格式

对于每个测试用例,输出一个整数,表示在最优操作下数组 aa 的最大 MEX⁡\operatorname{MEX}。

输入输出样例

  • 输入#1

    3
    6 3
    0 3 2 1 5 2
    6 2
    1 3 4 1 0 2
    4 5
    2 5 10 3

    输出#1

    4
    6
    0

说明/提示

在第一个测试用例中,不进行任何操作时,aa 的 MEX⁡\operatorname{MEX} 就是 44,这已经是最大值。

在第二个测试用例中,不进行任何操作时,aa 的 MEX⁡\operatorname{MEX} 是 55。如果我们对 i=1i=1 进行两次操作,数组变为 a=[5,3,4,1,0,2]a=[5,3,4,1,0,2],此时 MEX⁡\operatorname{MEX} 变为 66,这是最大值。

在第三个测试用例中,不进行任何操作时,aa 的 MEX⁡\operatorname{MEX} 就是 00,这已经是最大值。

由 ChatGPT 4.1 翻译

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

首页