当前没有测试数据。
C1. XOR Convenience (简易版)
题目描述
本题为该问题的简易版本,与困难版本的区别在于本题要求满足条件的下标范围为 2≤i≤n−1。请注意,困难版本的正确解法不一定适用于本简易版本。
给定自然数 n,请你构造一个长度为 n 的排列 p,使得对于每一个满足 2≤i≤n−1 的下标 i,都存在一个下标 j(i≤j≤n),满足 pi=pj⊕i。
可以证明,在题目给定的约束条件下,一定存在至少一个合法的排列 p。
注1:长度为 n 的排列指的是由 1 到 n 的所有整数组成的、每个数恰好出现一次的数组。例如,[2,3,1,5,4] 是一个合法排列,而 [1,2,2](数字 2 重复)和 [1,3,4](n=3 但出现数字 4)均不是合法排列。
注2:⊕ 表示按位异或运算。
输入输出格式
输入格式
输入包含多组测试用例。
第一行输入一个整数 t(1≤t≤104),表示测试用例的数量。
接下来 t 行,每行输入一个整数 n(3≤n≤2×105),表示排列的长度。
保证所有测试用例的 n 之和不超过 2×105。
输出格式
对于每组测试用例,输出一行 n 个整数,表示你构造的合法排列 p。
若存在多个合法解,输出任意一个即可。
样例
样例输入
2
3
6
样例输出
2 1 3
3 6 2 5 1 4
备注
- 第一个测试用例中,排列 p=[2,1,3] 合法的原因是:p2=1,且 p3⊕2=3⊕2=1。
- 第二个测试用例中,排列 p=[3,6,2,5,1,4] 合法的原因是:
- p2=6=4⊕2=p6⊕2
- p3=2=1⊕3=p5⊕3
- p4=5=1⊕4=p5⊕4
- p5=1=4⊕5=p6⊕5
数据范围
- 1≤t≤104
- 3≤n≤2×105
- 所有测试用例的 n 之和 ≤2×105
时空限制
- 时间限制:2 秒/测试点
- 内存限制:256 MB/测试点