CF1922E Increasing Subsequences
题目描述
我们回顾一下,数组 $a$ 的一个递增子序列是指可以通过删除其中一些元素(不改变剩余元素的顺序)得到的子序列,并且剩下的元素严格递增(即 $a_{b_1} < a_{b_2} < \dots < a_{b_k}$ 且 $b_1 < b_2 < \dots < b_k$)。注意,空子序列也被认为是递增的。
给定一个正整数 $X$,你的任务是构造一个长度不超过 $200$ 的整数数组,使得它恰好有 $X$ 个递增子序列,或者报告不存在这样的数组。如果有多组答案,你可以输出任意一组。
如果两个子序列包含相同的元素,但它们在数组中的位置不同,则认为它们是不同的(例如,数组 $[2, 2]$ 有两个不同的子序列 $[2]$)。
输入格式
第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。
每个测试用例仅一行,包含一个整数 $X$($2 \le X \le 10^{18}$)。
输出格式
对于每个查询,输出答案。如果无法找到满足条件的数组,第一行输出 $-1$。否则,第一行输出一个正整数 $n$,表示数组的长度。第二行输出 $n$ 个整数,表示所需的数组。如果有多组答案,你可以输出任意一组。数组中的所有元素应在区间 $[-10^9, 10^9]$ 内。
说明/提示
由 ChatGPT 4.1 翻译