#aBC271F. [ABC271F] XOR on Grid Path
[ABC271F] XOR on Grid Path
AT_abc271_f [ABC271F] XOR on Grid Path
题目描述
有一个 行 列的方格,从上往下第 行、从左往右第 列的格子记作 。
每个格子 上写有一个非负整数 。
你可以从格子 移动到 或 ,但不能移出方格范围。
请计算,从 出发,通过若干次移动到达 的所有路径中,经过的所有格子(包括 和 )上所写的整数的异或和为 的路径总数。
异或的定义如下:对于整数 ,它们的异或 定义为:将 用二进制表示后,每一位上如果只有一方为 ,则该位为 ,否则为 。
例如,(因为 )。
一般地, 个整数 的异或为 $(\cdots((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)$,并且可以证明其结果与顺序无关。
输入格式
输入通过标准输入给出,格式如下:
输出格式
请输出答案。
输入输出样例 #1
输入 #1
3
1 5 2
7 0 5
4 2 3
输出 #1
2
输入输出样例 #2
输入 #2
2
1 2
2 1
输出 #2
0
输入输出样例 #3
输入 #3
10
1 0 1 0 0 1 0 0 0 1
0 0 0 1 0 1 0 1 1 0
1 0 0 0 1 0 1 0 0 0
0 1 0 0 0 1 1 0 0 1
0 0 1 1 0 1 1 0 1 0
1 0 0 0 1 0 0 1 1 0
1 1 1 0 0 0 1 1 0 0
0 1 1 0 0 1 1 0 1 0
1 0 1 1 0 0 0 0 0 0
1 0 1 1 0 0 1 1 1 0
输出 #3
24307
说明/提示
数据范围
- 输入均为整数
样例解释 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 翻译