QOJ.ac

QOJ

時間限制: 8 s 記憶體限制: 1024 MB 總分: 38

#5896. 暗夜降临

统计

你正身处珠穆朗玛峰的山坡上。天色已晚,你必须在冻僵之前找到避难所!你该怎么办?

好消息是,你已经记住了这座山的布局。它是一个网格,其中某些方格无法通行,而另一些方格包含可以让你过夜的洞穴。坏消息是你不知道自己身在何处,而且山势太陡,无法向上攀爬。你唯一能做的就是向左、向右或向下移动。

以下是一个布局示例,其中 '.' 代表可通行的方格,'#' 代表无法通行的方格,数字代表洞穴。

######
##...#
#..#.#
#...##
#0#..#
####1#
######

由于天色很暗,你将通过遵循一个计划来移动,该计划是一系列指令,每条指令告诉你向左、向右或向下移动一个方格。如果一条指令会将你带到一个可通行的方格或洞穴,你就会执行它。如果它会将你带到一个无法通行的方格,你将忽略该指令。无论哪种情况,你都会继续执行下一步,依此类推,直到执行完整个计划。

为了帮助你下山,你需要为每个洞穴 C 找出两件事:

  • 从哪些方格可以到达 C?我们将这些方格的集合标记为 SC,并将它们的数量标记为 nC
  • 是否存在一个计划,使得从 SC 中的任何方格出发并遵循该计划后,最终都会停在洞穴 C?如果存在,我们称该洞穴为幸运的 (lucky)。

注意,在执行计划的过程中,你可能会经过几个洞穴。唯一重要的是执行完所有步骤后你最终停留在哪个方格,而不是沿途访问了哪些洞穴。

例如,在上面的布局中,洞穴 0 是幸运的。有 9 个方格可以到达它(包括它自身),并且计划 "left-left-down-down-left-down" 会让你从这些方格中的任何一个出发,最终都停在该洞穴。

输入格式

输入的第一行给出了测试用例的数量 T。接下来是 T 个测试用例,每个测试用例的第一行包含整数 RC,分别代表山地布局的行数和列数。

随后是 R 行,每行包含 C 个字符,描述山地布局。如上例所示,'#' 字符代表无法通行的方格,'.' 字符代表可通行的方格,数字 '0'-'9' 代表洞穴(它们也是可通行的方格)。

输出格式

对于每个测试用例,首先输出一行 "Case #x:",其中 x 是用例编号(从 1 开始)。对于每个洞穴 C(从 0 开始向上计数),写一行 "C: nC LC"。这里,C 是洞穴编号,nC 是你可以到达该洞穴的方格数量,LC 是字符串 "Lucky" 或 "Unlucky",定义如上。

数据范围

内存限制:1GB。 时间限制:8 秒。 洞穴数量在 1 到 10 之间(含)。 如果有 d 个洞穴,它们将用数字 {0, 1, ..., d - 1} 标记,且没有两个洞穴具有相同的标签。 山地布局边界上的所有方格都将是无法通行的。 1 ≤ T ≤ 20。

子任务 1

3 ≤ R, C ≤ 10。

子任务 2

3 ≤ R, C ≤ 60。

样例

输入 1

2
7 5
#####
##0##
##1.#
##2##
#3..#
#.#.#
#####
7 6
######
##...#
#..#.#
#...##
#0#..#
####1#
######

输出 1

Case #1:
0: 1 Lucky
1: 3 Lucky
2: 4 Unlucky
3: 7 Lucky
Case #2:
0: 9 Lucky
1: 11 Unlucky

说明

在第一个用例中,以下是一些你可以用于幸运洞穴的有效计划:

  • 对于洞穴 0,你可以使用空计划。如果你能到达该洞穴,说明你已经在正确的位置了!
  • 对于洞穴 1,你可以使用计划 right-down-left。
  • 对于洞穴 3,你可以使用计划 right-right-left-down-down-down-left。

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.