SP3894 BOBALLS - Bouncing Balls
题目描述
设想一个大小为 $N \times M$ 的网格。网格的左上角坐标为 $(0,0)$,右下角坐标为 $(N-1,M-1)$。每个格子上要么摆放着一个平台,要么写有一个数字。有两个球从网格顶部开始下落(位置分别为 $(0,Y1)$ 和 $(0,Y2)$,其中 $0 \leq Y1, Y2 < M$)。球在下落时只会垂直向下,除非它到达底行或碰到下方的平台。当球遇到平台时,它会随机向左或向右滚动,概率相等。球的得分是它经过的所有格子上的数字之和(包括起始格子)。但是,如果两个球都经过同一个格子,这个格子的分数只能算一次。目标是选择恰当的 $Y1$ 和 $Y2$,使得两个球的期望得分最大化。以下是一个网格示例(P 代表一个平台):
```
N = 6, M = 6
112214
211243
30PPP2
423378
1P9753
220102
```
例如,从位置 $(0,3)$ 放下一个球,会出现以下三种得分情况:
```
1) 2 + 2 + 1 + 1 + 0 + 2 + 4 + 1 + 2 = 15
2) 2 + 2 + 1 + 1 + 0 + 2 + 3 + 9 + 0 = 20
3) 2 + 2 + 4 + 3 + 2 + 8 + 3 + 2 = 26
```
考虑一个球的期望得分为:
`1/2 * (1/2 * 15 + 1/2 * 20) + 1/2 * 26`
输入格式
第一行输入为测试用例的数量。
每个测试用例的第一行包含两个整数 $N$ 和 $M$,分别表示网格的行数和列数。
接下来的 $N$ 行,每行包含 $M$ 个字符。每个字符要么是从 $0$ 到 $9$ 的数字,要么是字母 'P'。
输出格式
输出最大期望得分,保留到小数点后四位。
说明/提示
$$1 \leq N, M \leq 100$$
**本翻译由 AI 自动生成**