Bitwise Xor
题解
首先我们可以发现一个性质,若 x < y < z x<y<z x<y<z,那么一定有 x ⊕ z ⩾ min ( x ⊕ y , y ⊕ z ) x\oplus z\geqslant \min(x\oplus y,y\oplus z) x⊕z⩾min(x⊕y,y⊕z)。
这个结论可以从二进制的角度分析 x ⊕ y x\oplus y x⊕y与 y ⊕ z y\oplus z y⊕z的异或过程得出。
显然二进制的比较可以从高位到低位依次比较。
如果 x ⊕ y x\oplus y x⊕y与 y ⊕ z y\oplus z y⊕z在这一位上都是 0 0 0,显然, x ⊕ z x\oplus z x⊕z有这两种异或起来也应该是 0 0 0,这个位置两者没有区别,我们会继续往下比较,这部分也象征着 x , y , z x,y,z x,y,z在这前面几位都是一样的。
若 x ⊕ y x\oplus y x⊕y与 y ⊕ z y\oplus z y⊕z其中有一个 1 1 1,那么 x ⊕ z x\oplus z x⊕z这一位也应该是 1 1 1,比是 0 0 0的那一个大,此时便已经符合我们的条件了。
若 x ⊕ y x\oplus y x⊕y