G. Even-Odd XOR(构造 位运算) CF 1722G
题目:
构造一个长度为n的序列,使奇数位上的所有数异或和 等于 偶数位上的所有数异或和
分析:
由于奇数位异或和=偶数位异或和,所以可以得到奇数位异或和xor偶数位异或和=0
那么就可以转化为构造一个长度为n 异或和为0的序列 那么就简单多了
我们容易知道a ^ b ^ c ^ a ^ b ^ c = 0
实现:
void solve()
{
read(n);
int sum = 0;
rep(i, 0, n - 3)
{
printf("%d ", i);
sum ^= i;
}
printf("%d %d %d\n", (1 << 30), (1 << 30) - 1, (1 << 30)^((1 << 30) - 1)^sum);
}