异或是个神奇的运算

最近碰到了许多无从下手的题,看了题解之后,使用异或的新颖解法让我茅塞顿开,现在打算总结一下。

$tips:$本文用 $1$ 表示真, $0$ 表示假, ^ 表示异或, $¬$ 表示非, $∧$ 表示与, $∨$ 表示或。

运算法则

逻辑表示:

$a$ ^ $b=(¬$ $a∧b)∨(a∧¬$ $b) $

二进制表示:

$0$ ^ $0=0$

$0$ ^ $1=1$

$1$ ^ $0=1$

$1$ ^ $1=0$

文字表示:

如果 $a、b$ 两个值不相同,则异或结果为 $1$ 。如果 $a、b$ 两个值相同,异或结果为 $0$ 。

性质

交换律

$a$ ^ $b=b$ ^ $a$

结合律

$a$ ^ $b$ ^ $c=a$ ^ $(b$ ^ $c) = (a$ ^ $b)$ ^ $c$

分配律

$a$ ^ $(b+c) = (a$ ^ $b)+(a$ ^ $c)$

自反性

$a$ ^ $b$ ^ $b=a$

对于任何数,都有

$a$ ^ $a=0$

$a$ ^ $0=a$

巧用

交换两个数 $a、b$

$a=a$ ^ $b$

$b=a$ ^ $b$

$a=a$ ^ $b$

判断两个数 $a、b$ 是否相等

若 $a$ ^ $b=0$ 则相等

例题

洛谷P2420P1469P5651