一句话理解
前缀异或:xor[i]=a[1] xor … xor a[i]。
为什么要学
区间异或和,性质与前缀和类似。
讲解
a[l] xor … xor a[r] = xor[r] xor xor[l-1]。因为 x xor x = 0。
不必用加减。
例子
xors[i] = xors[i-1] ^ a[i];
int ans = xors[r] ^ xors[l-1];
前缀再异或掉左边。
常见错误
- 写成减号。
- l=1 时忘了 xor 0。
第 187 课
前缀异或:xor[i]=a[1] xor … xor a[i]。
区间异或和,性质与前缀和类似。
a[l] xor … xor a[r] = xor[r] xor xor[l-1]。因为 x xor x = 0。
不必用加减。
xors[i] = xors[i-1] ^ a[i];
int ans = xors[r] ^ xors[l-1];
前缀再异或掉左边。
x xor x 等于 0。
Ctrl / ⌘ + Enter 运行 · Tab 缩进
左右方向键也可翻课