嚣哥有一个 $N \times M$ 的平面,而部分的方格被挡住了。 他想把该平面全部以巧克力块覆盖,即每一个方格应被挡住或被巧克力块覆盖。 嚣哥有全国最大的巧克力工厂,有无限的 $1 \times 2$ 巧克力块,和 $K$ 个 $2 \times 2$ 巧克力块,当中 $(K \le 4)$ 。 嚣哥能旋转巧克力块的方向并覆盖在平面上,可是巧克力块间不能重叠,以及巧克力块不能放在被挡住的方格上。 请你替嚣哥找出有多少种覆盖平面的方法,由于数值可能太大,请取模 $10^9+7$ 。
输入格式
输入第一行是用一个空格隔开的三个整数 $ N, M, K $。
接下来 $ N $ 行,每行 $ M $ 个字符,描述了平面的情况。
字符 .
表示相应方格是没被挡住的方格,字符 #
表示相应方格被挡住了。
相邻字符之间无分隔符。
输出格式
输出一个非负整数表示答案对 $10^9+7$ 取模的结果。
数据范围
$ 1 \le N \le 30 , 1 \le M \le 15 , 0 \le K \le 4 $
测试点 $ 1-2: M=1 $
测试点 $ 3-5: M=2 $
测试点 $ 6-9: 1 \le N \times M \le 20 $
测试点 $ 10-12: $ 没有被挡住的方格 $, K=0 $
测试点 $ 13-14: K=0 $
测试点 $15-16: K=1 $
测试点 $17-18: 1 \le N \le 25 $
测试点 $19-20: 1 \le N \le 30 , 1 \le M \le 15 , 0 \le K \le 4$
Sample Test Cases
Input | Output | |
---|---|---|
5 3 1 #.. ..# #.. ..# ..# |
3 | |
这是仅有的三种覆盖这个平面的方法: 其中,第一种方法使用了 $2 \times 2$ 的巧克力块。 |
||
3 5 4 ... ... ... ... ... |
0 | |
可以证明,这个平面没有以巧克力块覆盖的方式。 |
Scoring: Per Case
Authored by s17r28
Appeared in 2022 Mini Contest 2 (Pre-SDIC)