AT_abc271_f [ABC271F] XOR on Grid Path

题目描述

有一个 $N$ 行 $N$ 列的方格,从上往下第 $i$ 行、从左往右第 $j$ 列的格子记作 $(i, j)$。 每个格子 $(i, j)$ 上写有一个非负整数 $a_{i, j}$。 你可以从格子 $(i, j)$ 移动到 $(i+1, j)$ 或 $(i, j+1)$,但不能移出方格范围。 请计算,从 $(1, 1)$ 出发,通过若干次移动到达 $(N, N)$ 的所有路径中,经过的所有格子(包括 $(1, 1)$ 和 $(N, N)$)上所写的整数的异或和为 $0$ 的路径总数。 异或的定义如下:对于整数 $a, b$,它们的异或 $a \oplus b$ 定义为:将 $a, b$ 用二进制表示后,每一位上如果只有一方为 $1$,则该位为 $1$,否则为 $0$。 例如,$3 \oplus 5 = 6$(因为 $011 \oplus 101 = 110$)。 一般地,$k$ 个整数 $p_1, \dots, p_k$ 的异或为 $(\cdots((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)$,并且可以证明其结果与顺序无关。

输入格式

输入通过标准输入给出,格式如下: > $N$ > $a_{1, 1}\ a_{1, 2}\ \ldots\ a_{1, N}$ > $\vdots$ > $a_{N, 1}\ a_{N, 2}\ \ldots\ a_{N, N}$

输出格式

请输出答案。

说明/提示

### 数据范围 - $2 \leq N \leq 20$ - $0 \leq a_{i, j} < 2^{30}\ (1 \leq i, j \leq N)$ - 输入均为整数 ### 样例解释 1 有以下两条路径满足条件: - $(1, 1) \rightarrow (1, 2) \rightarrow (1, 3) \rightarrow (2, 3) \rightarrow (3, 3)$ - $(1, 1) \rightarrow (2, 1) \rightarrow (2, 2) \rightarrow (2, 3) \rightarrow (3, 3)$ 由 ChatGPT 4.1 翻译