#G0156. K游戏【2026周末欢乐赛T5】

K游戏【2026周末欢乐赛T5】

题目描述

桌面上有 nn 张卡片,第 ii 张卡片上写着一个正整数 aia_i。游戏按轮进行:

  • 第一轮,可以从桌面上任意取走一张卡片;
  • 之后每一轮,设上一轮取走的卡片上写的数是 xx,则本轮只能取走写着 xx 或写着 x+1x+1 的卡片;
  • 每张卡片最多被取走一次,取走后即从桌面移除;
  • 整个过程中,已经取走的卡片上出现过的不同数值的个数不得超过 kk。

当某一轮无牌可取时,游戏结束。请求出游戏结束时最多能取走多少张卡片。

输入格式

第一行一个正整数 TT,表示测试数据组数。

接下来依次给出 TT 组数据,每组两行:

  • 第一行两个整数 n,kn,k;
  • 第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对每组数据输出一行一个整数,表示最多能取走的卡片张数。

样例 1

输入:

4
10 2
5 2 4 3 4 3 4 5 3 2
5 1
10 11 10 11 10
9 3
4 5 4 4 6 5 4 4 6
3 2
1 3 1

输出:

6
3
9
2

样例 2

输入:

4
5 2
1 2 2 5 5
6 6
10 11 12 10 11 12
7 3
1 2 3 4 1 2 3
4 1
7 7 7 9

输出:

3
6
6
3

样例解释

  • 样例 1 第 1 组:最多取走 66 张。
  • 样例 1 第 2 组:最多取走 33 张。
  • 样例 1 第 3 组:最多取走 99 张,恰好是全部卡片。
  • 样例 1 第 4 组:最多取走 22 张。例如先取走一张 11,再取走另一张 11(数值仍是 11),此后桌面上只剩 33,无法继续。
  • 样例 2 第 4 组:最多取走 33 张。把三张 77 依次取走之后,桌面上只剩 99,而 99 与 77 不满足取牌条件,游戏结束。

数据范围与子任务

下发文件

对于全部测试点:1≤T≤1041 \le T \le 10^4;1≤k≤n≤2×1051 \le k \le n \le 2\times 10^5;1≤ai≤1091 \le a_i \le 10^9;

单个测试点内 ∑n≤2×105\sum n \le 2\times 10^5;

子任务之间没有依赖关系。

子任务 分值 nn ∑n\sum n TT aia_i 附加限制
1 10 ≤12\le 12 ≤200\le 200 ≤20\le 20 ≤2×105\le 2\times10^5 无
2 15 ≤300\le 300 ≤3000\le 3000 ≤100\le 100
3 ≤2×105\le 2\times10^5 ≤104\le 10^4 k=nk=n
4 20 无
5 40 ≤109\le 10^9

时间限制 22 秒,空间限制 256256 MiB。