#icpc2013autumni. [icpc2013autumn_i]Overwriting Game
[icpc2013autumn_i]Overwriting Game
题目描述
你有一个由方形单元格组成的矩形棋盘,棋盘上有 行 列的单元格。行从上到下编号为 到 ,列从左到右编号为 到 。棋盘上的每个单元格都被涂成黑色或白色。
你将按照以下步骤给棋盘上色:
- 随机选择一个单元格 和一种颜色 ,其中 ,,黑色,白色。
- 使用颜色 给所有满足 且 的单元格 上色。
下面是上色操作的示例。你有一个 的棋盘,初始颜色如下图左侧所示。如果你的随机选择是单元格 和黑色,棋盘会变成如下图右侧所示。这次操作结果共有 个单元格被涂成黑色。注意,即使颜色在操作中没有实际改变,我们也会将单元格标记为“涂色”,例如示例中的单元格 。
图:上色操作示例
给定棋盘的初始颜色和目标颜色,你需要重复执行上色操作,直到棋盘变成目标颜色。编写一个程序来计算操作序列中涂色单元格的期望总数。
输入
输入包含多个数据集。数据集的数量最多为 。
每个数据集的第一行包含两个整数 和 (),表示棋盘的行数和列数。然后给出了棋盘的两种上色配置,前者是初始上色,后者是目标上色。一个上色配置由 行描述,每行包含 个字符。每个字符可以是 B 或 W,分别表示黑色单元格或白色单元格。两个上色配置之间有一个空行,并在每个数据集之后也有一个空行。你可以假设每个数据集的预期结果不会超过 。
输入以两个零的一行结尾,程序不应将其视为数据集。
输出
对于每个数据集,你的程序应输出一个结果。你的答案的绝对误差或相对误差必须小于 。
示例输入
1 2
BB
WW
2 1
B
W
B
W
2 2
BW
BW
WW
WW
3 4
BBBB
BBBB
BBBB
WWWW
WWWW
WWWW
5 5
BBBBB
BBBBB
BBBBB
BBBBB
BBBBB
BBBBB
BBBWB
BBBBB
BWBBB
BBBBB
0 0```
## 示例输出
```plain
6.0000000000
0.0000000000
12.8571428571
120.0000000000
23795493.8449918639```