#HK5209. 「UOI 2025 Stage 4 Day2」简单问题

「UOI 2025 Stage 4 Day2」简单问题

题目描述

题目译自 Ukrainian Olympiads in Informatics 2025 Stage 4 Day2 T4. Проста задача

我们称一个非空的正整数序列为奇怪的,如果其元素之和是一个质数。

给定一个长度为 nn 的数组 aa,数组元素均为质数。同时给定一个整数 kk

你需要将数组 aa 分成 kk非空的子序列,使得数组 aa 的每个元素恰好属于一个子序列,并且在所形成的子序列中,奇怪的子序列数量尽可能少。

在本题中,每个测试包含多个输入数据组。你需要为每个数据组独立解决问题。

注意:本题中没有「无附加限制」的子任务。

序列 cc 称为数组 bb 的子序列,如果可以通过从数组 bb 中删除若干元素(可能是零个),使得剩余元素组成序列 cc

输入格式

输入的第一行包含一个整数 TT (1T105)(1 \le T \le 10^5),表示输入数据组的数量。接下来是各数据组的描述。

每个数据组的第一行包含两个整数 nnkk (1kn105)(1 \le k \le n \le 10^5),分别表示数组 aa 的长度和需要划分的子序列数量。

每个数据组的第二行包含 nn 个质数 a1,a2,,ana_1, a_2, \ldots, a_n (2ai105,aiai+1)(2 \le a_i \le 10^5, a_i \le a_{i+1}),表示数组 aa 的元素。

保证所有数据组中 nn 的总和不超过 10510^5

输出格式

对于每个数据组,输出最优划分,格式如下:

  • 第一行输出一个整数 mm,表示所形成的子序列中奇怪的子序列数量;
  • 接下来的 kk 行,每行输出整数 sis_i 以及 b1,b2,,bsib_1, b_2, \ldots, b_{s_i} (1sin)(1 \le s_i \le n),分别表示对应子序列中的元素数量及其元素。

子序列及其元素的输出顺序可以任意。

如果存在多个正确答案,可以输出任意一个。

4
3 1
5 5 13
4 2
2 3 5 7
5 3
3 3 5 5 13
6 5
2 2 2 3 3 3

1
3 13 5 5
0
2 2 7
2 3 5
1
1 13
2 3 3
2 5 5
4
1 2
1 2
1 2
1 3
2 3 3

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 22 T20T \le 20, k=1k=1
22 55 n4n \le 4, ai104a_i \le 10^4(对于 1in1 \le i \le n
33 88 T20T \le 20, n10n \le 10, ai104a_i \le 10^4(对于 1in1 \le i \le n
44 44 nn 为偶数,ai>2a_i > 2(对于 1in1 \le i \le n
55 1818 nn 为奇数,ai>2a_i > 2(对于 1in1 \le i \le n
66 1010 2kn+12 \cdot k \ge n + 1
77 2929 nn 为偶数
88 2424 nn 为奇数