#ABC126F. 异或配对

异或配对

异或配对

题目描述

请构造一个满足以下条件、长度为 2M+12^{M + 1} 的数列 aa = {a1, a2, ..., a2M+1a_1,\ a_2,\ ...,\ a_{2^{M + 1}}}。如果不存在,则不构造。

  • aa 包含每个 00 以上 2M2^M 以下的整数恰好 22 个。
  • 对任意满足 ai=aja_i = a_ji, j (i<j)i,\ j \ (i \lt j),有 ai xor ai+1 xor ... xor aj=Ka_i \ xor \ a_{i + 1} \ xor \ ... \ xor \ a_j = K

什么是 xor(异或):

整数 c1,c2,...,cnc_1, c_2, ..., c_n 的 xor 定义如下:

  • c1 xor c2 xor ... xor cnc_1 \ xor \ c_2 \ xor \ ... \ xor \ c_n 写成二进制时,2k2^kk0k \geq 0)这一位的数,当 c1,c2,...,cnc_1, c_2, ..., c_n 中写成二进制后 2k2^k 这一位为 11 的个数是奇数时为 11,是偶数时为 00

例如,3 xor 5=63 \ xor \ 5 = 6(写成二进制:011 xorxor 101 == 110)。

输入格式

输入按以下格式从标准输入给出:

MM KK

输出格式

如果不存在满足条件的数列 aa,输出 -1

如果存在,则用空格分隔输出 aa 的元素。

如果存在多个满足条件的数列,输出其中任意一个即可。

样例

1 0
0 0 1 1

这个用例中,满足条件的数列存在多个。

例如,当 aa = {0,0,1,10, 0, 1, 1} 时,满足 ai=aja_i = a_j(i, j) (i<j)(i,\ j)\ (i \lt j)(1,2)(1, 2)(3,4)(3, 4)。因为 a1 xor a2=0, a3 xor a4=0a_1 \ xor \ a_2 = 0,\ a_3 \ xor \ a_4 = 0,所以这个 aa 满足给定条件。

1 1
-1

不存在满足条件的数列。

5 58
-1

不存在满足条件的数列。

数据范围

  • 输入均为整数
  • 0M170 \le M \le 17
  • 0K1090 \le K \le 10^9

提示

答案不唯一,输出任意合法解即可。

难度 提高+/省选
通过率
尝试 0
已通过 0
ID
1703
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签