loj#P3283. 「USACO 2020 US Open Platinum」Sprinklers 2: Return of the Alfalfa

「USACO 2020 US Open Platinum」Sprinklers 2: Return of the Alfalfa

题目描述

题目译自 USACO 2020 US Open Contest, Platinum Problem 1. Sprinklers 2: Return of the Alfalfa

Farmer John 有一块大小为 N×NN \times N 的网格形土地,将从上到下第 ii 行、从左到右第 jj 列(1i,jN1 \le i, j \le N)的格子记作 (i,j)(i, j)

他想要在这片土地上种植甜玉米和紫苜蓿(mù xu),所以他需要安装一些特别的洒水器。

一个安装在 (I,J)(I, J) 的甜玉米洒水器会为所有在左下角方向的格子(也就是所有满足 IiI \le ijJj \le J 的格子 (i,j)(i, j))洒水。

一个安装在 (I,J)(I, J) 的紫苜蓿洒水器会为所有在右上角方向的格子(也就是所有满足 iIi \le IJjJ \le j 的格子 (i,j)(i, j))洒水。

如果一个格子被一个或多个甜玉米洒水器喷洒到,那么它就能够种植甜玉米;如果一个格子被一个或多个紫苜蓿洒水器喷洒到,那么它就能够种植紫苜蓿。但是如果一个格子被两种洒水器都喷洒到了(或都没喷洒到),那么它就什么都种不了。

请你帮助 FJ 计算安装洒水器的方案数(对 109+7{10}^9 + 7 取模),满足每个格子最多安装一个洒水器,且每个格子都能种植(也就是说,每个格子恰好被一种洒水器喷洒到)。

有些格子已经被毛乎乎的奶牛占据了,导致这些格子上不能放置洒水器,但不影响格子能否种植植物。

输入格式

从标准输入中读入数据。

第一行一个正整数 NN
接下来 NN 行,第 ii 行一个长度为 NN 的字符串,表示网格第 ii 行的状态。字符串中只包含 W. 两种字符,如果第 jj 个字符为 W 则表示 (i,j)(i, j) 被毛乎乎的奶牛占据了,否则表示没有被占据。

输出格式

输出到标准输出中。

输出安装洒水器的方案数,对 109+7{10}^9 + 7 取模。

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

数据范围与提示

对于所有数据,1N20001 \le N \le 2000

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

出题人:Benjamin Qi