#CF1006F. 异或路径

异或路径

异或路径

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

有一个大小为 n×mn\times m 的矩形网格,第 (i,j)(i,j) 个格子中写有整数 ai,ja_{i,j}。

你需要计算从左上角格子 (1,1)(1,1) 到右下角格子 (n,m)(n,m) 的路径数。每一步只能向右或向下移动,并且路径经过的所有格子中的数按位异或后必须恰好等于 kk。

输入格式

第一行包含三个整数 n,m,kn,m,k。

接下来 nn 行,每行包含 mm 个整数,第 ii 行第 jj 个整数为 ai,ja_{i,j}。

输出格式

输出一个整数,表示满足条件的路径数。

样例输入 1

3 3 11
2 1 5
7 10 0
12 6 4

样例输出 1

3

样例输入 2

3 4 2
1 3 3 3
0 3 3 2
3 0 1 1

样例输出 2

5

样例输入 3

3 4 1000000000000000000
1 3 3 3
0 3 3 2
3 0 1 1

样例输出 3

0

数据范围

对于所有数据,1≤n,m≤201\le n,m\le20,0≤k≤10180\le k\le10^{18},0≤ai,j≤10180\le a_{i,j}\le10^{18}。

子任务编号 分值 特殊限制
1 20 n+m≤20n+m\le20
2 40 0≤k,ai,j<10240\le k,a_{i,j}<1024
3 无特殊限制