#P15060. 过河卒

过河卒

题目背景

建议评棕。

题目描述

Yuki 有一个 n+2n+2m+2m+2 列的棋盘,行的下标为 0n+10 \sim n+1,列的下标为 0m+10 \sim m+1

棋盘上第 ii 行第 jj 列的格子用 (i,j)(i,j) 表示,每个格子的颜色可能为白色或黑色,以 si,js_{i,j} 表示,si,j=0s_{i,j} = \texttt0 则表示白色,si,j=1s_{i,j} = \texttt1 则表示黑色。保证棋盘最外围一圈的格子颜色为白色,即保证 s0,i=sn+1,i=si,0=si,m+1=0s_{0,i}=s_{n+1,i}=s_{i,0}=s_{i,m+1}=\texttt0

Yuki 打算在棋盘上摆放若干个车。对于格子 (i,j)(i,j),它被称作安全的,当且仅当存在至少一个车位于第 ii 行或第 jj 列,且格子 (i,j)(i,j) 上不存在车。

Yuki 对车的摆放方案有如下要求:

  • 所有车都位于黑色格子上;
  • 任意两个车都不位于同一行或同一列;
  • 卒从棋盘的第 00 行出发,不可以在只经过安全的格子的情况下到达棋盘的第 n+1n+1 行。

其中,卒的行走方式为:设当前卒的位置为 (i,j)(i,j),那么它可以走到 (i+1,j),(i,j1),(i,j+1)(i+1,j),(i,j-1),(i,j+1) 中的任意一个格子,只要这个目的地在棋盘内。

Yuki 需要你帮助她求出满足条件的摆放方案的数量。由于答案可能较大,你只需要求出答案对 109+710^9+7 取模后的结果。

输入格式

本题有多组测试数据。

输入的第一行包含一个正整数 t,ct,c,分别表示测试数据组数和测试点编号。样例满足 c=0c=0

对于每组测试数据:

  • 第一行包含两个正整数 n,mn,m
  • 接下来 nn 行,第 ii 行包含一个长度为 mm01\texttt 01si,1,,si,ms_{i,1},\dots,s_{i,m}

输出格式

对于每组测试数据,输出一行,包含一个整数表示答案。

3 0
2 2
11
00
2 2
01
01
3 3
100
000
001
3
3
4

提示

样例 1 解释

该样例共有 33 组测试数据。

对于第 11 组测试数据,33 种合法方案分别为:

  • 不放车;
  • (1,1)(1,1) 放车;
  • (1,2)(1,2) 放车。

对于第 22 组测试数据,33 种合法方案分别为:

  • 不放车;
  • (1,2)(1,2) 放车;
  • (2,2)(2,2) 放车;

对于第 33 组测试数据,44 种合法方案分别为:

  • 不放车;
  • (1,1)(1,1) 放车;
  • (3,3)(3,3) 放车;
  • (1,1),(3,3)(1,1),(3,3) 放车。

样例 2

见附加文件中的 zu2.in\boldsymbol{zu2.in}zu2.ans\boldsymbol{zu2.ans}

该样例共有 33 组测试数据。

其中第 11 组测试数据满足 n,m4n,m \le 4,第 22 组测试数据满足 n100n \le 100m4m \le 4,第 33 组测试数据满足 n200n \le 200m8m \le 8

样例 3

见附加文件中的 zu3.in\boldsymbol{zu3.in}zu3.ans\boldsymbol{zu3.ans}

该样例共有 33 组测试数据。该样例所有测试数据满足 si,j=1s_{i,j} = 1

其中第 11 组测试数据满足 n,m80n,m \le 80,第 22 组测试数据满足 n,m300n,m \le 300,第 33 组测试数据满足 n,m1500n,m \le 1500

样例 4

见附加文件中的 zu4.in\boldsymbol{zu4.in}zu4.ans\boldsymbol{zu4.ans}

该样例共有 33 组测试数据。

其中第 11 组测试数据满足 n,m80n,m \le 80,第 22 组测试数据满足 n,m500n,m \le 500,第 33 组测试数据满足 n,m3000n,m \le 3000

数据范围

对于所有测试数据,保证:

  • 1t31 \le t \le 3
  • 1n,m30001 \le n,m \le 3000
  • si,j{0,1}s_{i,j} \in \{\texttt0,\texttt1\}

对于 c\boldsymbol c 为奇数的测试点,保证 n=m\boldsymbol{n=m}

::cute-table{tuack}

测试点编号 nn \le mm \le 特殊性质
141 \sim 4 100100 44
585 \sim 8 200200 88
9,109,10 11 15001500
11,1211,12 15001500 11
13,1413,14 8080
15,1615,16 300300
17,1817,18 15001500
192119 \sim 21 8080
22,2322,23 500500
24,2524,25 30003000

特殊性质:对于所有 i[1,n],j[1,m]i \in [1,n],j \in [1,m],保证 si,j=1s_{i,j}=\texttt1