QOJ.ac

QOJ

Límite de tiempo: 5 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓

#10297. 洪水

Estadísticas

Pavementland 是一个矩形城市,可以建模为一个 $h \times w$ 的网格。网格的行从北到南编号为 $1$ 到 $h$,列从西到东编号为 $1$ 到 $w$。我们将位于第 $r$ 行第 $c$ 列的单元格称为单元格 $(r, c)$。

在网格中,每个单元格要么是空的,要么包含一座建筑物。至少有一个单元格是空的。

由于季风涌动,Pavementland 全境正在发生山洪。最初,一个空单元格被雨水淹没。然后,水根据以下规则流动:

  • 如果一个空单元格与至少一个被淹没的单元格相邻,它就会被淹没。
  • 如果一个包含建筑物的单元格与至少两个被淹没的单元格相邻,建筑物就会倒塌,该单元格也会被淹没。

注意,如果两个单元格共享一条边,则称它们相邻。一个单元格最多与四个其他单元格相邻。设 $f((r, c))$ 为如果单元格 $(r, c)$ 最初被淹没,则在该过程结束后会被淹没的单元格数量。

城市官员希望预测所有可能情况下的山洪范围。请帮助他们确定所有空单元格 $(r, c)$ 的 $f((r, c))$ 之和。

输入格式

你的程序必须从标准输入读取数据。

第一行包含两个空格分隔的整数 $h$ 和 $w$。

接下来的 $h$ 行输入,每行包含一个长度为 $w$ 的二进制字符串。如果第 $r$ 行的第 $c$ 个字符是 $0$,则单元格 $(r, c)$ 是空的。如果第 $r$ 行的第 $c$ 个字符是 $1$,则单元格 $(r, c)$ 包含一座建筑物。

输出格式

你的程序必须输出到标准输出。

输出一个整数,即所有空单元格 $(r, c)$ 的 $f((r, c))$ 之和。

子任务

对于所有测试用例,输入将满足以下范围:

  • $1 \le h, w \le 5000$
  • 网格中至少有一个空单元格。

你的程序将在满足以下限制的输入实例上进行测试:

子任务 分值 附加限制
0 0 样例测试用例
1 5 $h = 1$
2 7 $h, w \le 80$
3 16 $h, w \le 500$
4 32 $h, w \le 2000$
5 40 无附加限制

样例

输入 1

3 3
000
011
010

输出 1

46

说明 1

如果单元格 $(1, 1), (1, 2), (1, 3), (2, 1)$ 或 $(3, 1)$ 最初被淹没,整个网格将在过程结束后被淹没。如果单元格 $(3, 3)$ 最初被淹没,则在该过程结束后只有 $1$ 个单元格会被淹没。因此,输出为 $9 + 9 + 9 + 9 + 9 + 1 = 46$。

输入 2

5 5
00101
01011
11010
01101
11000

输出 2

182

输入 3

1 10
1101011100

输出 3

6

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.