#P6275. [USACO20OPEN] Sprinklers 2: Return of the Alfalfa P

[USACO20OPEN] Sprinklers 2: Return of the Alfalfa P

题目描述

Farmer John 有一块小的田地,形状为一个 NNNN 列的一个方阵,对于所有的 1i,jN1 \le i,j \le N,从上往下的第 ii 行的从左往右第 jj 个方格记为 (i,j)(i,j)。他有兴趣在他的田地里种植甜玉米和苜蓿。为此,他需要安装一些特殊的洒水器。
在方格 (I,J)(I,J) 中的甜玉米洒水器可以喷洒到所有左下方的方格:即满足 IiI \le i 以及 jJj \le J(i,j)(i,j)

在方格 (I,J)(I,J) 中的苜蓿洒水器可以喷洒到所有右上方的方格:即满足 iIi \le I 以及 JjJ \le j(i,j)(i,j)

被一个或多个甜玉米洒水器喷洒到的方格可以长出甜玉米;被一个或多个苜蓿洒水器喷洒到的方格可以长出苜蓿。但是被两种洒水器均喷洒到(或均喷洒不到)的方格什么也长不出来。

帮助 Farmer John 求出在他的田地里安装洒水器的方案数( mod 109+7\bmod \ 10^9 + 7),每个方格至多安装一个洒水器,使得每个方格均能生长作物(即被恰好一种洒水器喷洒到)。

某些方格正被长毛奶牛占据;这不会阻止这些方格生长作物,但是这些方格里不能安装洒水器。

输入格式

输入的第一行包含一个整数 NN
对于每一个 1iN1\le i\le N,第 i+1i+1 行包含一个长为 NN 的字符串,表示方阵的第 ii 行。字符串中的每个字符为 W(表示被一头长毛奶牛占据的方格)或 .(未被占据)。

输出格式

输出安装洒水器的方案数 mod 109+7\bmod \ 10^9+7 的结果。

2
..
..
28
4
..W.
..WW
WW..
...W
2304

提示

样例 11 解释:

以下是所有十四种可以使得 (1,1)(1,1) 生长甜玉米的方式。(译注:C 表示 sweet corn,即甜玉米;A 表示 alfalfa,即苜蓿)

CC  .C  CA  CC  .C  CA  CA  C.  CA  C.  CC  .C  CC  .C
CC, CC, CC, .C, .C, .C, CA, CA, .A, .A, C., C., .., ..

样例 22 提示:

这个样例满足第一个子任务的限制。


对于 100%100\% 的数据,满足 1N20001 \le N \le 2000

1616 个测试点,其中 121\sim 2 为样例,其余性质如下:

对于测试点 343 \sim 4,满足 N10N \le 10 且最多有 1010 个未被占据的格子。
对于测试点 595 \sim 9,满足 N200N \le 200
对于测试点 101610 \sim 16,无特殊限制。


出题人:Benjamin Qi