异或(^)性质:两者不同的部分,在二进制中体现为1 ^ 0 = 1 ,0 ^ 1 = 1,其他情况都为0;
由定义可知
1.如果一个数n出现数为奇数次的话,反复异或值为n,否则出现为偶数次为0;
2.一个数n异或0为n即0 ^ n = n;
3.异或满足交换律即a ^ b = b ^ a;
可以借此性质来推断异或可以来统计整数数量的奇偶性
在例题中,我们可以理解先将9个数中的奇数提出一个
1 1 2 2 3 3 3 3
2
先对上面异或再用上面的值与下面异或
#include<bits/stdc++.h>
using namespace std;
#define sub substr
#define ll long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define endl '\n'
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3f
#define map unordered_map
#define pqu priority_queue /*优先队列 */
#define pb push_back
#define pf push_front
#d