#4604. C2. XOR-convenience (困难版)
C2. XOR-convenience (困难版)
当前没有测试数据。
C2. XOR-convenience (困难版)
题目描述
本题为该问题的困难版本,与简易版本的区别在于本题要求满足条件的下标范围为 。请注意,困难版本的正确解法不一定适用于简易版本。
给定一个正整数 ,请你构造一个长度为 的排列 ,使得对于每一个满足 的下标 ,都存在一个下标 (),满足 ;若不存在这样的排列,则输出 。
注1:长度为 的排列指的是由 到 的所有整数组成的、每个数恰好出现一次的数组。例如, 是一个合法排列,而 (数字 重复)和 ( 但出现数字 )均不是合法排列。 注2: 表示按位异或运算。
输入输出格式
输入格式
输入包含多组测试用例。 第一行输入一个整数 (),表示测试用例的数量。 接下来 行,每行输入一个整数 (),表示排列的长度。
保证所有测试用例的 之和不超过 。
输出格式
对于每组测试用例:
- 若存在合法排列,输出一行 个整数,表示该排列 ;
- 若不存在合法排列,输出一行 。
若存在多个合法解,输出任意一个即可。
样例
样例输入
2
3
4
样例输出
2 1 3
-1
备注
- 第一个测试用例中,排列 满足条件:,且 (对应 );同时对于 ,可验证 ,存在 使得 ,因此合法。
- 第二个测试用例中,不存在满足条件的排列,故输出 。
数据范围
- 所有测试用例的 之和
时空限制
- 时间限制:2 秒/测试点
- 内存限制:256 MB/测试点