CF2072C Creating Keys for StORages Has Become My Main Skill

题目描述

Akito 仍然无处可住,而小房间的价格却居高不下。为此,Akito 决定在银行找一份为存储设备创建密钥的工作。 在这个魔法世界中,一切都与众不同。例如,代码为 $(n, x)$ 的存储设备的密钥是一个满足以下条件的长度为 $n$ 的数组 $a$: - $a_1 \mid a_2 \mid a_3 \mid \ldots \mid a_n = x$,其中 $a \mid b$ 表示数 $a$ 和 $b$ 的[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。 - $\text{MEX}(\{ a_1, a_2, a_3, \ldots, a_n \})$ $^{\text{∗}}$ 在所有满足条件的数组中达到最大值。 Akito 勤奋地工作了几个小时,但突然头痛发作。请代替他工作一小时:对于给定的 $n$ 和 $x$,创建任意一个满足代码为 $(n, x)$ 的存储设备的密钥。 $^{\text{∗}}$ $\text{MEX}(S)$ 是满足以下条件的最小非负整数 $z$:$z$ 不在集合 $S$ 中,且所有满足 $0 \le y < z$ 的 $y$ 都在集合 $S$ 中。

输入格式

第一行包含一个数 $t$($1 \le t \le 10^4$)——测试用例的数量。 每个测试用例的唯一一行包含两个数 $n$ 和 $x$($1 \le n \le 2 \cdot 10^5$,$0 \le x < 2^{30}$)——数组的长度和按位或运算的目标值。 保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出 $n$ 个整数 $a_i$($0 \le a_i < 2^{30}$)——满足所有条件的密钥数组元素。 如果存在多个符合条件的数组,输出其中任意一个即可。 翻译由 DeepSeek R1 完成