QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 512 MB Puntuación total: 100

#18081. 链式纸牌

Estadísticas

本题介绍了一种名为“蝎子”(Scorpion)的纸牌接龙游戏的变体。

你将获得一副 52 张的扑克牌,这些牌被分发到七个列中。每一列可以有任意数量的牌,包括某些列中没有牌的情况(我们称这些列为空)。每张牌都有花色($\diamondsuit, \heartsuit, \spadesuit$ 或 $\clubsuit$)和点数(按递增顺序为:A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)。

在每一回合中,你可以执行以下操作:选择某一列中的当前牌(你可以选择任意一张),将其连同其上方所有的牌一起移动到另一列的最底端牌上(列的底部部分作为一个整体移动)。你只能将当前牌移动到花色相同且点数恰好大 1 的牌上。例如,$5\spadesuit$ 只能移动到 $6\spadesuit$ 上,$A\heartsuit$ 只能移动到 $2\heartsuit$ 上,如下图所示。如果当前牌的点数是 K,则只允许将其(连同其上方的所有牌)移动到空列上,且前提是它必须位于另一张牌之上(即不能是列顶部的牌)。

游戏的目标是构建 4 列从 K 到 A 的同花色序列(K 在列顶,A 在列底)。

输入格式

输入包含 7 行,第 $i$ 行描述第 $i$ 列。第 $i$ 行以整数 $k_i$ 开头,表示第 $i$ 列中的牌数($0 \le k_i \le 52$),随后是 $k_i$ 个双字符字符串,描述从上到下第 $i$ 列中的牌。第一个字符表示点数(“A”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “T”, “J”, “Q” 和 “K” 分别对应 A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q 和 K),第二个字符表示花色(“D”, “H”, “S” 和 “C” 分别对应 $\diamondsuit, \heartsuit, \spadesuit$ 和 $\clubsuit$)。

保证输入数据包含所有 52 张牌,且每张牌恰好出现一次。

输出格式

如果无法赢得游戏,输出“NO”。否则,在第一行输出“YES”,在第二行输出移动次数,在第三行按操作顺序输出移动的牌。如果有多种解法,输出其中任意一种。

样例

输入 1

14 KD QD JD TD 9D 8D 7D 6D 5D 4D 3D 2D AD KH
12 AS 6C 5C 4C 3C 2C AC 6S 5S 4S 3S 2S
11 KS QS JS TS 9S 8S 7S 5H 4H 3H 2H
1 KC
0
11 8H 7H 6H QC JC TC 9C 8C 7C QH JH
3 AH TH 9H

输出 1

YES
10
QH 6C AS KH AH QC 5H 6S TH 8H

输入 2

5 JH TH 9H JC AH
2 KH QH
6 6H 2C AC KD 8H 7H
6 QD JD 4H 3H KC QC
10 3S 2S AS 8S 7S 6S 5S 4S QS JS
12 3C TC 9C 8C 7C 6C 5C 4C KS TS 9S 2H
11 TD 9D 8D 7D 6D 5D 4D 3D 2D AD 5H

输出 2

YES
20
JH KD 6H KS JC 8H QD KC 2H TS QS 8S 3S AH TC 3C 2C 5H 4H TD

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.