我们随机选择一个格子并染红。若选到原本红色的格子,连通块数保持不变;若选到白色格子,则会产生变化。关键是弄清白格染红后连通块数的改变量。
对于一个白格:
小红有一个 n 行 m 列的矩阵,其中有一些格子已经被染成了红色。
小红将进行一次操作:随机选择一个格子,将其染成红色(如果该格子本身为红色,那么不进行任何改变)。
小红想知道,进行了一次操作以后,红色连通块数量的期望是多少?
我们定义两个红色格子连通,当且仅当它们共用同一条边。
可以证明,最终的期望 E 是个有理数。你需要输出 E 对 109+7 取模的值。
分数取模的定义: ba%p=x (%代表取模) 等价于在 [0,p−1] 找到一个 x 满足 x∗b%p=a 。例如,21 对 5 取模的答案是 3 。
第一行输入两个正整数 n 和 m ,用空格隔开。
接下来的 n 行,每行输入一个长度为 m 的、仅由"R'和"W"组成的字符串。"R"代表该格子染成红色,"W"代表该格子为初始的白色。
1≤n,m≤103
一个整数,代表最终的期望对 109+7 取模的值。
输入
3 3
WRW
RWR
WRW
输出
222222227
说明
最终红色连通块数量的期望是 29/9 ,再对 109+7 取模,结果为 222222227 。