#P16756. [GKS 2020 #C] Stable Wall

    ID: 19100 远端评测题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2020Special Judge拓扑排序Google Kick Start

[GKS 2020 #C] Stable Wall

题目描述

Apollo 正在玩一个涉及多联骨牌的游戏。多联骨牌是由一个或多个正方形通过边相连构成的单一连通形状。游戏的目标是将 NN 个多联骨牌组合成一个没有洞的矩形。每个多联骨牌都标有一个从 A 到 Z 的唯一字符。

Apollo 已经完成了游戏,并创建了一个包含 RR 行和 CC 列的矩形墙壁。他拍了一张照片,并发送给他的朋友 Selene。Selene 喜欢墙壁的照片,但如果墙壁是稳定的,她会更喜欢。如果墙壁可以通过一次添加一个多联骨牌的方式构建,并且每个多联骨牌始终是被支撑的,则该墙壁是稳定的。一个多联骨牌是被支撑的,如果它的每个方格要么在地面上,要么下方有其他方格。

Apollo 想检查他的墙壁是否稳定,如果稳定,则通过告诉她添加多联骨牌的顺序来向 Selene 证明这一点。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含两个整数 RRCC。然后有 RR 行,从上到下描述墙壁。每行包含一个由 CC 个大写字母(A 到 Z)组成的字符串,描述该行的墙壁。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是一个由 NN 个大写字母组成的字符串,描述他构建多联骨牌的顺序。如果存在多个这样的顺序,输出任意一个。如果墙壁不稳定,则输出 -1

4
4 6
ZOAAMM
ZOAOMM
ZOOOOM
ZZZZOM
4 4
XXOO
XFFO
XFXO
XXXO
5 3
XXX
XPX
XXX
XJX
XXX
3 10
AAABBCCDDE
AABBCCDDEE
AABBCCDDEE
Case #1: ZOAM
Case #2: -1
Case #3: -1
Case #4: EDCBA

提示

在样例 #1 中,注意 ZOMA 是另一个可能的答案。

在样例 #2 和样例 #3 中,墙壁不稳定,因此答案为 -1。

在样例 #4 中,唯一可能的答案是 EDCBA。

限制条件

1T1001 \le T \le 100

1R301 \le R \le 30

1C301 \le C \le 30

没有两个多联骨牌标有相同的字母。

输入保证符合题目描述中的规则。

测试集 1

1N51 \le N \le 5

测试集 2

1N261 \le N \le 26

翻译由 DeepSeek V4 Pro 完成