题解:P12156 [蓝桥杯 2025 省 Java B] 电池分组

· · 题解

题目传送门

本题考查按位异或运算,按位异或运算有几条重要的性质:

  1. 交换律:即 a \oplus b = b \oplus a,也就是运算顺序不影响结果。
  2. 结合律:即 (a \oplus b) \oplus c = a \oplus (b \oplus c),也就是可以随意调整异或运算的计算顺序。
  3. 自反性:即 a \oplus a = 0,也就是任何一个数按位异或自己的结果等于 0

我们先假设所有能量电池可以分成两组,且这两个组的电池的按位异或和相等,都为 x,那么所有电池能量值的异或和 Sum 就等于这两组异或和再进行异或运算,也就是 Sum = x \oplus x

注意到按位异或运算的性质 3 为:两个相同的数的按位异或结果等于 0;所以 Sum = x \oplus x = 0

所以如果所有电池能量值的异或和不为 0,那么就必定无法分成满足条件的两组。

到这里,按照上述思路去写就可以了,最后别忘了判断一下 N 是否大于等于 2,代码不放了。