AT_keyence2019_d Double Landscape

题目描述

在一个 $N$ 行 $M$ 列的网格中,考虑将 $1$ 到 $N \times M$ 的整数,每个数恰好写一次,填入网格中。高桥君觉得普通地填写没有趣味,于是决定按照以下条件填写数字: - 第 $i$ 行中填写的数的最大值为 $A_i$,其中 $1 \leq i \leq N$。 - 第 $j$ 列中填写的数的最大值为 $B_j$,其中 $1 \leq j \leq M$。 请你帮高桥君计算,满足上述条件的填写方法有多少种。答案对 $10^9 + 7$ 取模。

输入格式

输入通过标准输入给出,格式如下: > $N$ $M$ $A_1$ $A_2$ $\ldots$ $A_N$ $B_1$ $B_2$ $\ldots$ $B_M$

输出格式

输出满足条件的填写方法数,对 $10^9 + 7$ 取模。

说明/提示

## 限制条件 - $1 \leq N \leq 1000$ - $1 \leq M \leq 1000$ - $1 \leq A_i \leq N \times M$ - $1 \leq B_j \leq N \times M$ - $A_i, B_j$ 均为整数 ## 样例解释 1 $(A_1, A_2) = (4, 3)$,$(B_1, B_2) = (3, 4)$,此时有以下 $2$ 种填写方法: - 第 $1$ 行第 $1$ 列填写 $1$,第 $1$ 行第 $2$ 列填写 $4$,第 $2$ 行第 $1$ 列填写 $3$,第 $2$ 行第 $2$ 列填写 $2$。 - 第 $1$ 行第 $1$ 列填写 $2$,第 $1$ 行第 $2$ 列填写 $4$,第 $2$ 行第 $1$ 列填写 $3$,第 $2$ 行第 $2$ 列填写 $1$。 ## 样例解释 2 无论如何填写,都无法满足条件,因此输出 $0$。 由 ChatGPT 4.1 翻译