#USACOC2111C. Balanced Subsets

Balanced Subsets

Farmer John 的草地可以被看作是由正方形方格组成的巨大的二维方阵(想象一个巨大的棋盘),对于每一个 1iN1 \leqslant i \leqslant N1jN1 \leqslant j \leqslant N,方格可以用有序对 (i,j)(i,j) 表示。某些方格中含有草。

方格的一个非空子集被称为是「平衡的」,如果以下条件成立:

  1. 所有子集中的方格均含有草。
  2. 子集是四连通的。换句话说,从子集中的任一方格到另一方格均存在一条路径使得路径中的相邻方格均水平或竖直方向上相邻。
  3. 如果方格 (x1,y)(x_1,y)(x2,y)(x_2,y)x1x2x_1 \leqslant x_2)存在于子集中,那么所有满足 x1xx2x_1 \leqslant x \leqslant x_2 的方格 (x,y)(x,y) 也存在于子集中。
  4. 如果方格 (x,y1)(x,y_1)(x,y2)(x,y_2)y1y2y_1 \leqslant y_2)存在于子集中,那么所有满足 y1yy2y_1 \leqslant y \leqslant y_2 的方格 (x,y)(x,y) 也存在于子集中。

计算平衡的子集数量模 109+710^9+7 的结果。

  • 1N1501 \leqslant N \leqslant 150

输入格式

输入的第一行包含 NN

以下 NN 行每行包含一个长为 NN 的字符串。如果方格 (i,j)(i,j) 中有草,则第 ii 行的第 jj 个字符为 G,否则为 .

输出格式

输出平衡的子集数量模 109+710^9+7 的结果。

2
GG
GG
13

对于这个测试用例,所有的四连通子集均是平衡的。

G.  .G  ..  ..  GG  .G  ..  G.  GG  .G  G.  GG  GG
.., .., G., .G, .., .G, GG, G., G., GG, GG, .G, GG
4
GGGG
GGGG
GG.G
GGGG
642

以下是一个符合第二个条件(四连通)但不符合第三个条件的子集的例子:

GG..
.G..
GG..
....

测试点性质

  • 测试点 1-4 满足 N4N \leqslant 4
  • 测试点 5-10 满足 N20N \leqslant 20
  • 测试点 11-20 没有额外限制。

题目提供者

Benjamin Qi