A1818 | 黑白方格
时间限制2s
内存限制512MB
通过 / 提交0/0
题目描述
时间限制:2000ms
内存限制:512MB
给你一个 $N$ 行,$M$ 列的网格,其中每个方格都被涂成了 $\bf{黑色}$ 或者 $\bf{白色}$。
令 $S_{i,j}$ 表示每个方格的颜色,那么 $S_{i, j} =$
B 表示位于 $(i, j)$ 的方格为 $\bf{黑色}$;若 $S_{i, j} =$ W 表示方格为 $\bf{白色}$。网格中上下左右相邻且颜色均为 $\bf{黑色}$ 的方格被称为属于同一个 $\bf{连通块}$。
具体地说:方格 $(a, b)$ 和方格 $(c, d)$ 属于同一个 $\bf{连通块}$ 当且仅当 $|a - c| + |b - d| = 1, S_{a, b} =$
B, $S_{c, d} =$ B。求从网格上任选一个 $\bf{白色}$ 方格,将其涂为 $\bf{黑色}$ 后,网格中 $\bf{连通块}$ 数量的 $\bf{期望}$。
$\large{数据范围}$
- $1 \le N, M \le 1000$
- 题目保证至少有一个方格 $(i, j)$ 使得 $S_{i, j} =$
W。输入格式
对于每个测试用例格式如下:
$S_{1,1}$$S_{1,2}$$\ldots$$S_{1,M}$
$S_{2,1}$$S_{2,2}$$\ldots$$S_{2,M}$
$\vdots$
$S_{N,1}$$S_{N,2}$$\ldots$$S_{N,M}$
$N$ $M$
$S_{1,1}$$S_{1,2}$$\ldots$$S_{1,M}$
$S_{2,1}$$S_{2,2}$$\ldots$$S_{2,M}$
$\vdots$
$S_{N,1}$$S_{N,2}$$\ldots$$S_{N,M}$
输出格式
对于每个测试用例在单独的一行中输出答案;
输出答案与标准答案的绝对误差或相对误差不超过 $10^{−9}$,都会被视为正确答案。
输出答案与标准答案的绝对误差或相对误差不超过 $10^{−9}$,都会被视为正确答案。
输入输出样例
输入 #1
3 3 BBW BWB BWW
输出 #1
1.5
输入 #2
4 5 WWBWW WBBBW BBBBB WWBWW
输出 #2
1.2
输入 #3
3 4 BWWW WBWB WWBB
输出 #3
2.714285714286
对于第一个测试用例:
如果将方格 $(1,3)$ 重新涂成黑色,则黑色连通块的数量变为 $1$ 。
如果将方格 $(2,2)$ 重新绘制为黑色,则黑色连通块的数量变为 $1$ 。
如果将方格 $(3,2)$ 重新绘制为黑色,则黑色连通块的个数变为 $2$ 。
如果将方格 $(3,3)$ 重新绘制为黑色,则黑色连通块的个数变为 $2$ 。
因此,均匀随机选择一个白色方格并将其重新涂成黑色后,黑色连通块数量的期望值为 $(1+1+2+2)/4 = 3/2$ 。
如果将方格 $(1,3)$ 重新涂成黑色,则黑色连通块的数量变为 $1$ 。
如果将方格 $(2,2)$ 重新绘制为黑色,则黑色连通块的数量变为 $1$ 。
如果将方格 $(3,2)$ 重新绘制为黑色,则黑色连通块的个数变为 $2$ 。
如果将方格 $(3,3)$ 重新绘制为黑色,则黑色连通块的个数变为 $2$ 。
因此,均匀随机选择一个白色方格并将其重新涂成黑色后,黑色连通块数量的期望值为 $(1+1+2+2)/4 = 3/2$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?