U1386 「USACO 2025 US Open Silver」Sequence Construction

暂无评定 传统题 USACO2025Silver 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

U1386「USACO 2025 US Open Silver」Sequence Construction

暂无评定 传统题 USACO2025Silver 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

本题使用标准输入、标准输出,无需读写题面中提到的文件。

题目描述

最近,农夫约翰农场里的奶牛们迷上了观看节目 Apothecowry Dairies。节目围绕着聪明的牛侦探 CowCow 解决各种各样的问题展开。Bessie 从节目中发现了一个新问题,但答案要等到一周后的下一集才会揭晓!请你替她解决这个问题。

给定整数 MM 和 KK (1≤M≤109,1≤K≤31)(1 \leq M \leq 10 ^ 9, 1 \leq K \leq 31)。 请你选择一个正整数 NN,并构造一个由 NN 个非负整数组成的序列 aa,使得满足以下条件: 1≤N≤1001 \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 是 33,1616 的 popcount 是 11。

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

输入包含 TT 个 (1≤T≤5⋅103)(1 \le T \le 5 \cdot 10^3) 相互独立的测试用例。

输入格式

第一行包含 TT。 每个测试用例仅一行,包含 MM 和 KK。 保证所有测试用例互不相同。

输出格式

按如下格式输出 TT 个测试用例的答案: 如果不存在答案,则该测试用例只输出一行 −1-1。 否则,该测试用例第一行输出一个整数 NN,表示序列长度 -- (1≤N≤1001 \le N \le 100)。 第二行输出 NN 个用空格分隔的整数,满足题目条件 -- (0≤ai≤M0 \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 的异或和为 1⊕0=11 \oplus 0 = 1。因此满足所有条件。

在第二个测试用例中,数组 a=[3,23,7]a = [3, 23, 7] 的元素和为 3333。popcount 的异或和为 2⊕4⊕3=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]。 可以证明第三个测试用例不存在合法数组。

SCORING: Input 2: M≤8,K≤8M \leq 8, K \leq 8 Inputs 3-5: M>2KM > 2^K Inputs 6-18: 无额外限制。

题目来源:Aakash Gokhale

来源

USACO|2025|Silver