本题主要利用了xor的特性,对于连续的数字,做xor运算,有特殊的性质。
比如 $2 \quad xor \quad 3 =1$ ,$4 \quad xor \quad 5 =1$
所以,以某个偶数开头的连续数字,每4个的xor值为0。
根据这个特性,我们可以分情况讨论:
如果$a$是奇数,先把$a$ 和 $ans$做异或。
$a+1$必然是偶数,让a++,保证区间起点是偶数
这时我们可以讨论$[a,b]$的长度,如果长度为奇数,即$b$为偶数,让ans再与$b$做异或,且$b--$。
这样就保证了$[a,b]$的长度为偶数。
这时根据长度来判断,如果长度是4的倍数,区间$[a,b]$的异或值为0,否则为1。