设 $A$ 的二维前缀和数组为 $S$,那么每个限制 $(x, y)$ 均可以写成:
- $S_{x, y} = 1$;
- $S_{N, M} \oplus S_{x, M} \oplus S_{N, y} = 0$。
所有第一条限制都是独立的,这使得总方案数除以了 $2^K$。对于第二条限制,不妨认为 $S_{N, M}$ 是一个常数,此时相当于 $S_{x, M}$ 和 $S_{N, y}$ 之间有限制。建出一张图,给这两个结点之间连边,那么每个连通块就有 $2$ 种方案。
由于 $N, M$ 非常大,所以需要对操作的行列编号离散化后计算。
时间复杂度为 $\mathcal{O}(K \log K)$。