P14476 矩阵绘画
题目描述
艾莉芬喜欢画画。有一天,她研究起了如何画矩阵。
具体来说,艾莉芬想画一个 $n \times n$ 的 01 矩阵。她会从一个全为 0 的矩阵开始画,每次可以选一行或者一列进行涂色。如果选择了第 $i$ 行,她会将其中第 1 到 $a_i$ 列的值都加上 1;如果选择了第 $i$ 列,她会将其中第 1 到 $b_i$ 行的值都加上 1。她不会将一个位置涂色超过一次,因为这样这个位置的值会大于 1。其中,$\{a_i\}, \{b_i\}$ 是两个长为 $n$ 的数列。
艾莉芬还有一个 $n \times n$ 的草稿矩阵,草稿矩阵中的值可能是 0、1 或者字符 ?。如果草稿矩阵中一个位置的值是 0 或 1,那么她画出的矩阵的这个位置就必须是相应的值;如果一个位置的值是 ?,那么这个位置的值就没有限制。
现在艾莉芬想知道她能画出多少种不同的 01 矩阵,两个矩阵不同当且仅当至少存在一个位置的值不同。由于这个数可能很大,只需要求出这个数对 $10^9 + 7$ 取模后的结果。
输入格式
**注:由于洛谷的评测限制,在洛谷上提交本题请使用标准输入输出,不要使用文件输入输出。**
第一行一个正整数 $n$;
之后一行 $n$ 个非负整数表示 $a_i$;
之后一行 $n$ 个非负整数表示 $b_i$;
之后 $n$ 行,每行一个长度为 $n$ 的字符串,表示题中给定的草稿矩阵。
输出格式
一行一个整数表示答案。
说明/提示
### 【样例解释 1】
可能的矩阵为以下 2 种:
```
111 011
011 011
001 001
```
### 【样例解释 2】
不存在符合要求的矩阵。
### 【测试点约束】
所有测试数据均满足:$1 \leq n \leq 5000$,$0 \leq a_i, b_i \leq n$,草稿矩阵中的元素 $\in \{0, 1, ?\}$。
::cute-table{tuack}
| 测试点编号 | $n \leq$ | 特殊性质 |
| :--: | :--: | :--: |
| $1 \sim 3$ | $8$ | — |
| $4 \sim 6$ | $20$ | — |
| $7 \sim 9$ | $100$ | — |
| $10 \sim 13$ | $500$ | — |
| $14 \sim 17$ | $5000$ | $a_1 = 0$ |
| $18 \sim 21$ | $5000$ | $a_i, b_i \leq i$ |
| $22 \sim 25$ | $5000$ | — |
每组测试点的前两个均满足:给定的矩阵仅包含问号。