题库练习 扑克牌(poker) [CSP-J 2024]

A71639 | 扑克牌(poker) [CSP-J 2024]

来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

小 P 从同学小 Q 那儿借来一副 n 张牌的扑克牌。

本题中我们不考虑大小王,此时每张牌具有两个属性:花色和点数。花色共有 4 种:方片、草花、红桃和黑桃。点数共有 13 种,从小到大分别为 \tt{A 2 3 4 5 6 7 8 9 T J Q K}。注意:点数 10 在本题中记为 \tt T

我们称一副扑克牌是完整的,当且仅当对于每一种花色和每一种点数,都恰好有一张牌具有对应的花色和点数。由此,一副完整的扑克牌恰好有 4 \times 13 = 52 张牌。以下图片展示了一副完整的扑克牌里所有的 52 张牌。

小 P 借来的牌可能不是完整的,为此小 P 准备再向同学小 S 借若干张牌。可以认为小 S 每种牌都有无限张,因此小 P 可以任意选择借来的牌。小 P 想知道他至少得向小 S 借多少张牌,才能让从小 S 和小 Q 借来的牌中,可以选出 52 张牌构成一副完整的扑克牌。

为了方便你的输入,我们使用字符 \tt D 代表方片,字符 \tt C 代表草花,字符 \tt H 代表红桃,字符 \tt S 代表黑桃,这样每张牌可以通过一个长度为 2 的字符串表示,其中第一个字符表示这张牌的花色,第二个字符表示这张牌的点数,例如 \tt{CA} 表示草花 \tt A\tt{ST} 表示黑桃 \tt T(黑桃 10)。

输入格式

输入的第一行包含一个整数 n 表示牌数。

接下来 n 行:

每行包含一个长度为 2 的字符串描述一张牌,其中第一个字符描述其花色,第二个字符描述其点数。

输出格式

输出一行一个整数,表示最少还需要向小 S 借几张牌才能凑成一副完整的扑克牌。

输入输出样例

输入 #1
1
SA
输出 #1
51
输入 #2
4
DQ
H3
DQ
DT
输出 #2
49
C++ 编辑器
输入
输出