对每一位独立考虑:该位上 XOR 为该位被置1的元素个数的奇偶性;OR 为是否至少一个元素该位为 1。
要使 XOR 与 OR 在每一位都相等,必须“该位为 1 的个数”要么为 0,要么为奇数(不能是正偶数)。
简单构造:
值域均在 1..1e9 内,复杂度 O(∑n)。
Tk 有一个长度为 n 的数组 {a1,a2,...,an} 初始数组中所有元素均为 0 。Tk 希望你给数组的每个元素都赋予一个正整数,使得数组满足:
【按位异或】按位异或(xor)运算是对整数的二进制表示的每一位执行异或操作;
【按位或】按位或(or)运算是对整数的二进制表示的每一位执行或操作。
每个测试文件均包含多组测试教据。第一行输入一个整数 T(1≦T≦104) 代表数据组数;
随后每组测试数据描述如下:
在一行上输入一个整数 n(1≦n≦2×105) ;
除此之外,保证所有测试数据的 n 之和不超过 2×105 。
对于每一组测试数据,新起一行。输出 n 个整数 a1,a2,...,an(1≤ai≤109),表示所构造的数组;可以证明一定有解。
如果存在多种可行解,可输出任意一种,系统会自动判定是否正确。
输入
2
4
1
输出
5 6 4 8
6
说明
对于第一组数据 a1 or a2 or... or an=15,a1 xor a2 xor... an=15 满足条件。