QOJ.ac

QOJ

时间限制: 1 s 内存限制: 512 MB 总分: 100

#4777. Tichu

统计

Tichu 是一种由四名玩家参与的纸牌游戏。玩家围坐在方桌旁,每名玩家与其对面的玩家组成一队。游戏使用一副标准扑克牌外加四张特殊牌进行。游戏的基本规则如下:赢得上一轮出牌权的玩家可以以任何合法的牌型组合开始新的一轮。随后,其他玩家轮流选择弃权或打出与上一位玩家相同牌型但牌值更大的组合。这一过程持续到所有玩家都弃权为止,此时打出最后组合的玩家赢得该轮,并可以开始新的一轮。游戏的主要目标是尽快出完手中的所有牌。

这些基本规则使得一种好的策略是将手中的牌组合起来,以便能以尽可能少的组合数打出。为了简化,我们在此考虑该游戏的一个略微修改版本。我们忽略特殊牌,只使用一副 52 张的标准扑克牌,牌值范围从 2 到 Ace,花色包括红桃 (hearts)、方块 (diamonds)、梅花 (clubs) 和黑桃 (spades)。花色用小写字母 h, d, c, s 表示,牌值按从小到大的顺序用 2–9, T, J, Q, K, A 表示。

以下是合法组合的完整列表:

  • 任意单张牌;
  • 一对牌值相同的牌;
  • 三张牌值相同的牌;
  • 四张牌值相同的牌;
  • 葫芦(Full House),即三张牌值相同的牌加上两张牌值相同的牌,例如 444KK;
  • 长度至少为五的顺子,即至少五张牌值连续递增的牌,例如 89TJQK。

在本题中,你的任务是确定你手中 13 张牌可以被划分成的最少组合数。

输入格式

第一行包含一个正整数:测试用例的数量,最多为 100。之后每个测试用例包含:

  • 一行描述你手中 13 张牌的内容。牌的描述由单个空格分隔。每张牌由两个字符描述:牌值后跟花色。你手中的所有牌各不相同。

输出格式

对于每个测试用例:

  • 第一行包含一个整数 $n$:你手中的牌可以被划分成的最少组合数。
  • $n$ 行描述你手中牌的一个最小组合集合。每一行应包含一个合法组合中的牌,格式与输入相同。你手中的所有牌必须在这些组合中恰好出现一次。不需要对组合或组合内的牌进行特定排序。

样例

输入 1

2
2h 3c 4d 5d 6s Th Qc Qs Ad Tc Ts 9c 9d
2h 3h 4h 5h 6d 7s 8h 8d 8c 8s 9c Td Js

输出 1

4
2h 3c 4d 5d 6s
Th Ts Tc Qc Qs
9d 9c
Ad
2
2h 3h 4h 5h 6d 7s 8d 9c Td Js
8h 8s 8c

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.