CF2277A Subset Selecting

题目描述

你有一个长度为 $n$ 的整数数组 $a$,以及一个正整数 $k$。 你希望把 $a$ 中的某些元素划分为若干组 $S_1, S_2, \ldots, S_m$($m \ge 0$),满足: - 每组至少包含 $k$ 个元素; - $a$ 中的每个元素最多属于一个组(也可以不属于任何组)。 对于所有合法分组方案,求 $\operatorname{mex}(\{\max(S_1), \max(S_2), \ldots, \max(S_m)\})$ 的最大可能值,其中 $\operatorname{mex}(c)$ 表示不在集合 $c$ 中的最小非负整数。如果 $m=0$,则视为集合为空,$\operatorname{mex}(\{\}) = 0$。

输入格式

输入包含多组测试用例。第一行为测试用例组数 $t$($1 \le t \le 500$)。 每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 100$),分别表示数组的长度和分组的最小大小。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le n$),表示数组 $a$ 的元素。

输出格式

对于每个测试用例,输出一个整数,表示所有合法分组方案中 $\operatorname{mex}(\{\max(S_1), \max(S_2), \ldots, \max(S_m)\})$ 的最大可能取值。

说明/提示

在第一个样例中,一种最优方案是分组为 $\{0\}$、$\{1\}$、$\{2\}$,此时 $\operatorname{mex}(\{0, 1, 2\}) = 3$。 在第二个样例中,一种最优方案是分组为 $\{1,2,3,4\}$,此时 $\operatorname{mex}(\{4\}) = 0$。 在第三个样例中,一种最优方案是分组为 $\{0,0\}$ 以及 $\{1,1\}$,此时 $\operatorname{mex}(\{0, 1\}) = 2$。 由 ChatGPT 5 翻译