#1202. 蘑菇 (mushroom)
蘑菇 (mushroom)
题目描述
螃蟹 Lim Li 在她的花园里打造了一个蘑菇种植园。这个蘑菇种植园可以看成一个 行 列的网格,其中每一格要么是空的,要么有一朵蘑菇,要么有一个洒水器。
举个例子,一个 的蘑菇种植园可能是如下图所示的样子:

一朵蘑菇和一个洒水器之间的距离被定义为它们的横坐标差的绝对值与纵坐标差的绝对值的较大值。换句话说,假设一朵蘑菇位于 行 列,一个洒水器位于 行 列,那么它们之间的距离为 。
一个洒水器只能浇到距离自己不超过 的蘑菇。下图展示了 时洒水器可以浇到的区域:

一朵蘑菇如果可以被至少 个洒水器浇到,则我们称它是好蘑菇。你需要帮 Lim Li 计数在她的蘑菇种植园里有多少朵好蘑菇。
输入格式
第一行包含四个整数 ,含义如题意所述。
接下来 行,每行 个字符,描述一个蘑菇种植园。每个字符表示一个格子:
.表示一个空格子。M表示一个有一朵蘑菇的格子。S表示一个有一个洒水器的格子。
输出格式
输出一行一个整数,表示好蘑菇的数量。
样例输入 1
5 5 1 1
....M
.M...
..S..
.S...
...M.
样例输出 1
1
样例输入 2
4 4 4 1
....
.M..
..MM
...S
样例输出 2
3
样例输入 3
1 8 5 2
SM..MM.S
样例输出 3
2
样例输入 4
5 5 2 2
....M
.M...
..S..
.S...
...M.
样例输出 4
2
说明
样例解释
- 对于样例 :所有洒水器可以浇到的距离范围都是 ,也就是每个洒水器都能且仅能洒到与自己八连通的格子。只有位于 的蘑菇可以被浇到水。这组样例满足子任务 。
- 对于样例 :唯一的洒水器可以浇到的距离范围是 ,所以可以浇到所有蘑菇。这组样例满足子任务 。
- 对于样例 :所有蘑菇都需要被两头的洒水器浇到才能成为好蘑菇。因为洒水器可以浇到的距离范围都是 ,所以只有从左往右第二朵和第三朵蘑菇满足好蘑菇的要求。这组样例满足子任务 。
- 对于样例 :因为洒水器可以浇到的距离范围都是 ,所以只有位于 和 的蘑菇可以同时被两个洒水器浇到。这组样例满足子任务 。
其它样例说明
- 样例 :见选手目录下的
mushroom/mushroom5.in ~ 8.in与相应的.ans,这些样例分别满足子任务 的约束条件。
数据范围
对于 的数据,,,。保证种植园中至少有一朵蘑菇和一个洒水器。
各子任务的附加限制如下表所示:
| 子任务 | 分值 | 数据范围及特殊性质 |
|---|---|---|
| ,, | ||
| , | ||
| ,, | ||
| ,洒水器和蘑菇的数量均少于 | ||
| 无特殊限制 |
相关
在下列比赛中: