QOJ.ac

QOJ

Limite de temps : 20 s Limite de mémoire : 1024 MB Points totaux : 23

#11469. 数据中心双工

Statistiques

两家公司,Apricot Rules LLC 和 Banana Rocks Inc.,共用同一个数据中心。数据中心是一个 $R$ 行 $C$ 列的矩阵,每个单元格包含一个服务器塔。每个塔内的知识产权归属于两家公司中的某一家。

起初,他们在分配给不同公司的单元格之间的边界上建造了墙。这使得属于同一公司的正交相邻单元格能够保持连接。此外,如果单元格 $x$ 连接到一个单元格,而该单元格直接或间接地连接到 $y$,则称 $x$ 和 $y$ 是连通的。根据这个定义,属于同一公司的两个单元格可能无法连通,这是不可接受的。

两家公司同意在单元格的顶点处建造狭窄的走廊,允许两个对角相邻的单元格直接连接。令 $(i, j)$ 表示第 $i$ 行第 $j$ 列的单元格。在任意给定的顶点处最多只能建造一条狭窄走廊,这意味着要么 $(i, j)$ 和 $(i + 1, j + 1)$ 可以连接,要么 $(i + 1, j)$ 和 $(i, j + 1)$ 可以连接,或者两者都不连接,但不能同时连接。当然,只能在分配给同一公司的单元格之间建造走廊。

给定一个矩阵,其中每个单元格根据其所属公司被标记为 A 或 B,请找到一种添加对角连接的方法,使得所有的 A 单元格连通,且所有的 B 单元格连通。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个整数 $R$ 和 $C$,表示代表数据中心的矩阵的行数和列数。接下来有 $R$ 行,每行包含 $C$ 个字符。这些行中第 $i$ 行的第 $j$ 个字符 $M_{i,j}$ 为 A 或 B,表示 $(i, j)$ 处的单元格所属的公司。

输出格式

对于每个测试用例,首先输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),如果无法通过分配对角连接使得 A 单元格连通且 B 单元格连通,则 $y$ 为 IMPOSSIBLE,否则为 POSSIBLE。如果输出 POSSIBLE,则接着输出 $R - 1$ 行,每行包含 $C - 1$ 个字符。这些字符必须对应于上述描述的有效排列。这些行中第 $i$ 行的第 $j$ 个字符必须是 \(如果 $(i, j)$ 和 $(i + 1, j + 1)$ 要连接)、/(如果 $(i + 1, j)$ 和 $(i, j + 1)$ 要连接)或 .(如果两对都不连接)。

数据范围

$1 \le T \le 100$。 $2 \le C \le 100$。 $2 \le R \le 100$。 $M_{i,j}$ 为大写字母 A 或 B。 至少存在一对 $i, j$ 使得 $M_{i,j}$ 为 A。 至少存在一对 $i, j$ 使得 $M_{i,j}$ 为 B。

样例

输入 1

3
2 2
AB
BA
2 3
AAB
ABB
3 4
BBAA
BABA
BBAA

输出 1

Case #1: IMPOSSIBLE
Case #2: POSSIBLE
..
Case #3: POSSIBLE
//\
.//

说明

在样例 1 中,A 单元格对和 B 单元格对都需要连接,但由于两个连接必须穿过同一个顶点,因此最多只能存在一个连接。

在样例 2 中,单元格在输入中已经以所需方式连接,因此不需要额外的连接。注意,你可以添加不必要的有效连接,因此另一个有效的答案是 //,但 \. 是错误的。

在样例 3 中,也存在多种解,展示了其中一种。

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.