#luoguP12025. [USACO25OPEN] Sequence Construction S

[USACO25OPEN] Sequence Construction S

本题没有可用的提交语言。

题目描述

最近,农夫约翰农场里的奶牛们迷上了观看《炼乳神探》这档节目。节目讲述了一头聪明的奶牛侦探CowCow解决各类案件的故事。贝茜从节目中发现了新的谜题,但答案要等到下周的下一集才会揭晓!请帮她解决这个问题。

给定整数 MMKK (1M109,1K31)(1 \leq M \leq 10^9, 1 \leq K \leq 31)。请选择一个正整数 NN 并构造一个包含 NN 个非负整数的序列 aa,满足以下条件:

  • 1N1001 \le N \le 100
  • a1+a2++aN=Ma_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-1

 popcount(x)\dagger \text{ popcount}(x) 表示整数 xx 的二进制表示中 11 的位数。例如,1111 的 popcount 是 331616 的 popcount 是 11

\dagger \oplus 表示按位异或运算符。

输入包含 TT (1T51031 \le T \le 5 \cdot 10^3) 组独立测试用例。

输入格式

第一行包含 TT

每个测试用例的第一行也是唯一一行包含 MMKK

保证所有测试用例都是唯一的。

输出格式

按以下方式输出 TT 个测试用例的解答:

如果无解,该测试用例对应的唯一一行输出应为 1-1

否则,该测试用例的第一行输出应为序列长度 NN1N1001 \le N \le 100),第二行输出应包含 NN 个用空格分隔且满足条件的整数(0aiM0 \le a_i \le M)。

3
2 1
33 5
10 5
2
2 0
3
3 23 7 
-1

提示

在第一个测试用例中,数组 a=[2,0]a = [2, 0] 的元素之和为 22。其 popcount 的异或和为 10=11 \oplus 0 = 1,因此所有条件均被满足。

在第二个测试用例中,数组 a=[3,23,7]a = [3, 23, 7] 的元素之和为 3333。其 popcount 的异或和为 243=52 \oplus 4 \oplus 3 = 5,因此所有条件均被满足。

其他有效数组包括 a=[4,2,15,5,7]a = [4, 2, 15, 5, 7]a=[1,4,0,27,1]a = [1, 4, 0, 27, 1]

可以证明第三个测试用例不存在有效数组。

  • 测试点 22M8,K8M \leq 8, K \leq 8
  • 测试点 353\sim 5M>2KM > 2^K
  • 测试点 6186\sim18:无额外限制。