#P6008. [USACO20JAN] Cave Paintings P

[USACO20JAN] Cave Paintings P

题目描述

Bessie 成为了一名艺术家,正在创作壁画!她现在正在创作的作品是一个高为 NN 的方阵,方阵的每行都由 MM 个方格组成(1N,M10001\le N,M\le 1000)。每个方格是空的,画了石头,或者画了水。Bessie 已经画上了包含石头的方格,包括整幅画作的边界。她现在想要将某些空的方格画上水,使得如果这幅画是真实的,其中应当不存在水的净移动。定义从上到下第 ii 行的方格的高度为 N+1iN+1-i。Bessie 想要她的画作满足以下限制:

假设方格 aa 画的是水。那么如果存在一条从 aa 到方格 bb 的路径,由高度不超过 aa 的空的方格或是有水的方格组成,路径中每相邻两个方格都有一条公共边,那么 bb 画的也是水。

求 Bessie 可以创作的不同作品的数量模 109+710^9+7 的余数。Bessie 可以将任意数量的空格画上水,包括不画以及全画。

输入格式

输入的第一行包含两个空格分隔的整数 NNMM

以下 NN 行每行包含 MM 个字符。每个字符均为 .#,分别表示一个空的方格和一个画有石头的方格。第一行和最后一行、第一列和最后一列仅包含 #

输出格式

输出一个整数,为满足限制的作品的数量模 109+710^9+7 的余数。

4 9
#########
#...#...#
#.#...#.#
#########
9

提示

样例解释

如果第二行中的任意一个方格被画上水,那么所有空的方格必须都被画上水。否则,假设没有这样的方格画有水。那么 Bessie 可以选择画上第三行的空格组成的三个连续区域的任意子集。所以,画作的总数等于 1+23=91+2^3=9

子任务

  • 测试点 151 \sim 5 满足 N,M10N,M \leq 10
  • 测试点 615 6 \sim 15 没有额外限制。