P16220 [ECUSTPC 2025] 浮点
题目描述
Maddy 碰到了一台机器,在机器面前她需要报出一长串数,这样她才可以获得水晶之心!
机器首先告诉了 Maddy 一个整数 $n$,具体而言,这串数的要求如下:
1. 这串数由 $n$ 个在 $[0, 2^{30})$ 之内的整数组成,记其为 $a_1, a_2, \dots, a_n$。
2. 对于所有的 $1 \le i < n$,满足有 $a_i < a_{i+1}$ 且 $a_i \text{ xor } a_{i+1} < a_i \text{ and } a_{i+1}$。
请帮助 Maddy 求出一串这样的数,或告诉 Maddy 答案并不存在。
输入格式
第一行输入一个整数 $T$ ($1 \le T \le 10^3$),表示测试数据的数量。
每组测试数据的唯一一行输入一个整数 $n$ ($2 \le n \le 10^6$),表示机器告诉 Maddy 的数。
保证所有测试数据输入的 $\sum n \le 10^6$。
输出格式
对于每组测试数据中若存在这样的一串数则输出一行 $n$ 个整数,表示一串满足机器要求的数,若不存在则输出一行一个整数 $-1$。
如果有多个合法的答案则你可以输出其中任意一个。
说明/提示
### 样例 1 解释
对于第 1 个样例,$a_1 \text{ xor } a_2 = 9 \text{ xor } 15 = 6$,$a_1 \text{ and } a_2 = 9 \text{ and } 15 = 9$,因此有 $a_1 \text{ xor } a_2 < a_1 \text{ and } a_2$,且容易发现 $a_1 < a_2$。
对于第 2 个样例,
- $a_1 \text{ xor } a_2 = 4 \text{ xor } 5 = 1$,$a_1 \text{ and } a_2 = 4 \text{ and } 5 = 4$,因此有 $a_1 \text{ xor } a_2 < a_1 \text{ and } a_2$,且容易发现 $a_1 < a_2$。
- $a_2 \text{ xor } a_3 = 5 \text{ xor } 6 = 3$,$a_2 \text{ and } a_3 = 5 \text{ and } 6 = 4$,因此有 $a_2 \text{ xor } a_3 < a_2 \text{ and } a_3$,且容易发现 $a_2 < a_3$。
### 提示
对于两个整数 $a$ 和 $b$,$a \text{ xor } b$ 表示按位取异或,即结果的二进制表示的一位为 1 当且仅当原数的二进制表示在该位上有且仅有一个 1。
对于两个整数 $a$ 和 $b$,$a \text{ and } b$ 表示按位取与,即结果的二进制表示的一位为 1 当且仅当原数的二进制表示在该位皆为 1。