P12025 [USACO25OPEN] Sequence Construction S

题目描述

最近,农夫约翰农场里的奶牛们迷上了观看《炼乳神探》这档节目。节目讲述了一头聪明的奶牛侦探 CowCow 解决各类案件的故事。贝茜从节目中发现了新的谜题,但答案要等到下周的下一集才会揭晓!请帮她解决这个问题。 给定整数 $M$ 和 $K$ $(1 \leq M \leq 10^9, 1 \leq K \leq 31)$。请选择一个正整数 $N$ 并构造一个包含 $N$ 个非负整数的序列 $a$,满足以下条件: - $1 \le N \le 100$。 - $a_1 + a_2 + \dots + a_N = M$。 - $\text{popcount}(a_1) \oplus \text{ popcount}(a_2) \oplus \dots \oplus \text{ popcount}(a_N) = K$。 如果不存在这样的序列,输出 $-1$。 $\dagger \text{ popcount}(x)$ 表示整数 $x$ 的二进制表示中 $1$ 的位数。例如,$11$ 的 popcount 是 $3$,$16$ 的 popcount 是 $1$。 $\dagger \oplus$ 表示按位异或运算符。 输入包含 $T$ ($1 \le T \le 5 \cdot 10^3$) 组独立测试用例。

输入格式

第一行包含 $T$。 每个测试用例的第一行也是唯一一行包含 $M$ 和 $K$。 保证所有测试用例都是唯一的。

输出格式

按以下方式输出 $T$ 个测试用例的解答: 如果无解,该测试用例对应的唯一一行输出应为 $-1$。 否则,该测试用例的第一行输出应为序列长度 $N$($1 \le N \le 100$),第二行输出应包含 $N$ 个用空格分隔且满足条件的整数($0 \le a_i \le M$)。

说明/提示

在第一个测试用例中,数组 $a = [2, 0]$ 的元素之和为 $2$。其 popcount 的异或和为 $1 \oplus 0 = 1$,因此所有条件均被满足。 在第二个测试用例中,数组 $a = [3, 23, 7]$ 的元素之和为 $33$。其 popcount 的异或和为 $2 \oplus 4 \oplus 3 = 5$,因此所有条件均被满足。 其他有效数组包括 $a = [4, 2, 15, 5, 7]$ 和 $a = [1, 4, 0, 27, 1]$。 可以证明第三个测试用例不存在有效数组。 - 测试点 $2$:$M \leq 8, K \leq 8$。 - 测试点 $3\sim 5$:$M > 2^K$。 - 测试点 $6\sim18$:无额外限制。