P13450 [GCJ 2009 Finals] Doubly-sorted Grid
题目描述
如果一个矩形网格的每一行中的字母都从左到右非递减,并且每一列中的字母都从上到下非递减,则称该网格是**双重有序**(doubly sorted)的。下面的例子中,前两个网格是双重有序的,而后两个不是:
```
abc ace aceg base
def ade cdef base
ghi bdg xxyy base
```
现在给你一个部分填充的网格,其中有些格子已经填入了字母。你的任务是计算有多少种方式可以填充剩余的格子,使得最终得到的网格是双重有序的。答案可能很大,请输出方案数对 $10007$ 取模后的结果。
输入格式
输入的第一行是测试用例数 $T$。接下来有 $T$ 组测试数据。每组测试数据的第一行为两个整数 $R$ 和 $C$,分别表示网格的行数和列数。接下来 $R$ 行,每行一个长度为 $C$ 的字符串,表示部分填充的网格。网格中的每个字符要么是小写英文字母,要么是 '.'(表示该格未填)。
输出格式
对于每组测试数据,输出一行,格式如下:
Case #$X$: $y$
其中 $X$ 是测试编号(从 $1$ 开始),$y$ 是方案数对 $10007$ 取模的结果。
说明/提示
**限制条件**
- $1 \leq T \leq 40$
- 部分填充的网格中每个字符要么是 '.',要么是小写英文字母。
**小数据集(10 分)**
- 时间限制:5 秒
- $1 \leq R, C \leq 4$
**大数据集(20 分)**
- 时间限制:10 秒
- $1 \leq R, C \leq 10$
翻译由 ChatGPT-4.1 完成。