A115475.异或后缀排列
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个正整数 n。
你需要构造一个 1∼n 的排列 p1,p2,…,pn,使得对于每个 i(1≤i≤n−1),都能在后缀区间 [i,n] 中找到某个位置 j,满足:
pi=pj⊕i,
其中 ⊕ 表示按位异或。
如果存在这样的排列,输出任意一个;否则输出 −1。
输入格式
第一行一个整数 t,表示测试组数。
对于每组数据,仅一行一个整数 n。
输出格式
对每组数据:
- 若无解,输出
-1; - 若有解,输出一行 n 个整数,表示任意一个合法排列。
输入输出样例
输入#1
2 3 4
输出#1
2 1 3 -1
说明/提示
数据范围
- 1≤t≤104
- 3≤n≤2×105
- 所有测试组的 n 之和不超过 2×105