解题思路
本题考查按位异或与三角形不等式下的三元组计数。n≤3000,枚举两维即可。
- 条件 x⊕y⊕z=0 等价于 z=x⊕y。因此不必三层循环,只需枚举 x、y,再检查还原出的 z。
- 结合非降序 1≤x≤y≤z≤n,对每个 1≤x≤y≤n,令 z=x⊕y,再判断 y≤z≤n。
- 三角形条件在非降序下只需 x+y>z。注意到
x+y=(x⊕y)+2(xANDy)=z+2(xANDy)
因此 x+y>z 当且仅当 x 与 y 在某一二进制位上同时为 1(即 xANDy=0)。实现时直接判断 x+y>z 即可。