#P14105. [ZJCPC 2017] Heap Partition
[ZJCPC 2017] Heap Partition
Description
一个序列 被称为 ,如果存在一棵有 个节点的二叉树 ,使得每个节点恰好用序列 中的一个元素进行标记,并且对于每个非根节点 及其父节点 ,都满足 且 。序列 中的每个元素只能用于标记树 的某个节点一次。
Chiaki 有一个序列 ,她想要将其分解为最少数目的可堆子序列(heapable subsequences)。
注意,一个子序列是指可以通过删除一些元素(不改变剩余元素的相对顺序)从原序列得到的序列。
Input Format
本题有多组测试数据。输入的第一行为整数 ,表示测试用例数。对于每一组测试数据:
第一行包含一个整数 (),表示序列的长度。
第二行包含 个整数 ()。
保证所有测试用例中 的总和不超过 。
Output Format
对于每组测试数据,第一行输出一个整数 ,表示分解得到的最少可堆子序列的个数。接下来的 行,每行先输出一个整数 ,表示该子序列的长度。然后在同一行输出 个递增排列的整数 ,表示该子序列中各元素在原序列中的索引。
4
4
1 2 3 4
4
2 4 3 1
4
1 1 1 1
5
3 2 1 4 1
1
4 1 2 3 4
2
3 1 2 3
1 4
1
4 1 2 3 4
3
2 1 4
1 2
2 3 5
Hint
由 ChatGPT 5 翻译
京公网安备 11011102002149号