Loading

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);
}
posted @ 2022-09-02 14:30  DM11  阅读(257)  评论(0编辑  收藏  举报