1926. 大膜法师HYX的奇妙冒险

时间限制 5000 ms   内存限制 256 MB

大膜法师HYX希望去西天取得真经,但他需要经历81难才能修成正果,而这81难正是指有81位替身使者在路上试图阻拦他,由于替身使者间会互相吸引,所以他去西天取经前会先击败全部的81位替身使者,而他希望知道自己有多少种击败他们的方法。 首先我们知道,他们的行动全部发生在一个 $n\times m$ 大小的地图上,地图上的每个格子上有一个数字,如果是 $-1$,则代表这个格子是障碍物不可以通过;如果是 $0$,则代表这个格子是可以通过且没有敌人;如果是大于 $0$ 的数字,则代表这个位置有一个敌人且他的生命值是这个数字。 大膜法师HYX可以自己选择一个格子进入战场,大膜法师HYX击败敌人的方法有两种,一种是使用膜法攻击,可以一击击败当前格子的敌人,另一种是使用替身攻击,每次将对敌人造成 $1$ 点伤害,大膜法师HYX对于一个敌人只会使用一种攻击方式,而且他经过有敌人的格子时可以不立即攻击敌人,只要最终打败所有敌人即可。 大膜法师HYX还被加以了限制,在地图的每一行上,只能使用最多 $72$ 次替身攻击,在地图的每一列上,只能使用最多 $1$ 次膜法攻击。 对于两种击败全部敌人的方法,被认为是不同的当且仅当击败某一个敌人所用的攻击方式不同,或者击败某两个敌人的顺序不同,因为最终答案会很大,请对 $10^9+7$ 取模。 由于有些格子不可以通过导致无法击败某些敌人,让大膜法师HYX很不服气,所以他开挂了,他的朋友向他展示了所有的操作,他最多可以请他的朋友开挂 $3$ 次,每次开挂可以使一个标记为 $-1$ 的格子里的数字变成 $0$。

输入数据

第一行为一个整数 $T\ (1 \le T \le 10)$ ,表示一共有 $T$ 组数据。
对于每组数据:
第一行是 $2$ 个整数 $n, m\ (9\le n, m\le 13)$,表示地图的大小。
接下来 $n$ 行,每行 $m$ 个整数,表示每个格子的情况 $(-1\le a_{ij}\le 72)$。

输出数据

对于每组数据:
输出一行一个整数,表示大膜法师HYX击败所有敌人的方案数对 $10^9+7$ 取模的结果。
如果大膜法师HYX无法击败所有敌人,则输出 $0$。

样例输入

复制
1
9 11
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10
1 1 1 1 -1 0 1 1 1 1 10 \n
 ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n
 · · · ·  · · · · · ·  \n

样例输出

复制
381177978         \n

样例说明

去掉任意一个 $-1$ 即可击败所有的敌人,由于每行敌人总血量只有 $18 \lt 72$,所以对于每一列可以选任意 $1$ 个敌人使用膜法击败或者不选,其余敌人都使用替身攻击击败即可,除此之外还要考虑击败顺序的影响。

提交

请先 登录

© 2024 FAQs Contact About