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。