QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100

#5317. 扫雷.exe

Statistics

Windows 扫雷(WinMine)是 Windows 系统中最广为人知的游戏之一。它的规则非常简单,玩一局只需要几分钟。首先,让我们简要介绍一下这个游戏(如果你认为你已经足够熟悉这个游戏,可以跳过下一段):

游戏的目标是在不被地雷“炸毁”的情况下(通过鼠标左键)揭开所有不包含地雷的方块。地雷的位置通过逻辑推理发现。点击游戏面板会揭示所选方块下方隐藏的内容(如果大量空白方块彼此相邻,它们可能会一次性被揭开)。有些方块是空白的,有些则包含数字(1 到 8),每个数字代表该方块周围相邻的地雷数量。一旦所有空白方块在没有触雷的情况下被揭开,游戏即告胜利,任何未被标记的地雷将由计算机自动标记。扫雷的一个显著特点是其在初始阶段和某些中间阶段的随机性。

——维基百科

Jaddy 非常喜欢在空闲时间玩扫雷,因为它简单且巧妙。然而,有时当他在游戏中遇到一些无法确定的状态时,会感到非常沮丧。请看以下状态作为示例:

在这个示例的红圈中,剩下的两个方块是绝对无法确定的,显然剩下的那 1 个地雷有两种可能的分布方式。

当 Jaddy 遇到这种困境时,他别无选择,只能猜测。有时只有两种选择(如示例所示),但有时会有很多种。因此,他需要一个游戏助手,根据当前游戏面板的状态来计算地雷的不同可能分布数量。

这个游戏助手对他来说非常有用且有趣,所以他立即开始编写代码。不幸的是,Jaddy 把所有时间都花在了“编程与算法”课上玩扫雷,所以他觉得这样一个复杂的任务是不可能完成的。Jaddy 非常喜欢扫雷,所以他请求你这位优秀的程序员帮忙。此外,为了降低难度,他增加了三个约束:

  1. 保证游戏的输入状态总是可以通过在初始面板上进行“一次”点击创建。
  2. 在给定的状态下,如果两个未揭开的方块直接相连或通过其他未揭开的方块相连,它们也是双连通的。也就是说,即使移除了其他任何一个未揭开的方块,这两个方块仍然是连通的。这里我们说两个方块是连通的,当且仅当它们共享一条边。这意味着一个方块最多有四个相邻的方块。
  3. 对于任意两个未揭开的方块 A 和 B,如果 A 和 B 都与同一个连通分量 S 相邻(其中 S 是一个仅由正数方块组成的连通区域),那么 A 和 B 总是可以通过未揭开的方块连通。

请帮帮 Jaddy!

输入格式

输入包含多组测试数据。第一行是一个正整数 $T$ ($T \le 50$),表示测试数据的组数。接下来是 $T$ 组数据。对于每组测试数据,第一行包含三个正整数 $n, m$ 和 $w$ ($1 \le n, m \le 100$,$1 \le w \le 1500$),分别表示给定面板的行数、列数以及面板上的地雷总数。接下来是一个 $n \times m$ 的字符矩阵,描述面板的当前状态。矩阵中包含两种符号:

  1. 数字 0 到 8:表示该方块周围的地雷数量('0' 表示空白方块)。
  2. '.':表示该方块尚未揭开。

输出格式

对于每组测试数据,输出一行,格式为 Case #x: y,其中 x 是测试数据的编号,y 是给定状态下地雷的可能分布数量,结果对 $1000003$ 取模。

样例

输入格式 1

2
4 5 2
.....
.....
11111
00000
4 5 4
.....
.....
22222
00000

输出格式 1

Case #1: 2
Case #2: 1

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.