QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100

#13295. 收集蘑菇

統計

Lim Li 正在她的后院经营一个蘑菇种植园。她的蘑菇种植园可以建模为一个 $R$ 行 $C$ 列的网格,每个网格方块可以是空的,也可以包含一个蘑菇,或者包含一个喷水器。例如,她的蘑菇种植园可能看起来像这样:

图 1:一个 $R = 5$ 且 $C = 5$ 的蘑菇农场。

喷水器和蘑菇之间的距离定义为它们在两个轴上坐标差的最大值。换句话说,如果蘑菇位于第 $X_m$ 行第 $Y_m$ 列,而喷水器位于第 $X_s$ 行第 $Y_s$ 列,它们之间的距离为 $\max(|X_s - X_m|, |Y_s - Y_m|)$。喷水器的覆盖范围有限,因此只有当喷水器与蘑菇之间的距离不超过 $D$ 时,喷水器才能浇灌该蘑菇。例如,如果 $D = 1$,两个喷水器可覆盖的区域将是:

图 2:显示喷水器覆盖范围的示意图。

蘑菇只有在有足够多的喷水器浇灌时才能生长并被收获。具体来说,如果一个蘑菇至少被 $K$ 个喷水器浇灌,那么它就是可收获的。请计算 Lim Li 在她的种植园中可以收获的蘑菇总数。

输入格式

输入的第一行包含四个整数:$R$(行数)、$C$(列数)、$D$(喷水器与被浇灌蘑菇之间的最大距离)以及 $K$(蘑菇可收获所需的最少喷水器数量)。

接下来的 $R$ 行输入每行包含 $C$ 个字符,表示蘑菇种植园的网格。每个字符代表特定网格方块的内容,如下所示:

  • ‘.’ 表示空的网格方块,
  • ‘M’ 表示包含蘑菇的网格方块,
  • ‘S’ 表示包含喷水器的网格方块。

输出格式

输出包含一行一个整数,即 Lim Li 可以收获的蘑菇的最大数量。

子任务

每个实例的最大执行时间为 1.0 秒。你的程序将在满足以下限制的输入实例集上进行测试:

  • $2 \le RC \le 500000$
  • $1 \le D \le \max(R, C)$
  • $1 \le K \le RC$
  • 至少存在一个蘑菇
  • 至少存在一个喷水器
子任务 分值 附加限制
1 9 $1 \le R, C \le 100, D = \max(R, C), K = 1$
2 10 $1 \le R, C \le 100, D = \max(R, C)$
3 18 $1 \le R, C \le 100, D = 1, K = 1$
4 23 $1 \le R, C \le 500$, 蘑菇数量 $\le 500$, 喷水器数量 $\le 500$
5 19 $R = 1$
6 21 -

样例

样例输入 1

5 5 1 1
....M
.M...
..S..
.S...
...M.

样例输出 1

1

说明 1

由于每个喷水器的范围仅为 1,意味着喷水器只能到达相邻的方块,因此只有位于 $(2, 2)$ 的蘑菇被浇灌。

样例输入 2

4 4 4 1
....
.M..
..MM
...S

样例输出 2

3

说明 2

由于每个喷水器的范围为 4,种植园中唯一的喷水器可以浇灌所有的蘑菇。

样例输入 3

1 8 5 2
SM..MM.S

样例输出 3

2

说明 3

每个蘑菇都需要两个喷水器在范围内,因为 $K = 2$。只有两个蘑菇满足此条件,即从左侧数起的第二个和第三个蘑菇。

样例输入 4

5 5 2 2
....M
.M...
..S..
.S...
...M.

样例输出 4

2

说明 4

由于每个喷水器的范围为 2,位于 $(2, 2)$ 的蘑菇和位于 $(5, 4)$ 的蘑菇都可以被两个喷水器浇灌。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.