题目名称 4049. [CSP 2024 J]扑克牌
输入输出 poker.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2024-10-27加入
开放分组 全部用户
提交状态
分类标签
NOIP/CSP
查看题解 分享题解
通过:44, 提交:102, 通过率:43.14%
GravatarLixj 100 0.027 s 3.35 MiB C++
Gravatar佑佑 100 0.028 s 3.31 MiB C++
Gravatar不知所云 100 0.029 s 3.35 MiB C++
Gravatarsnow 100 0.029 s 3.35 MiB C++
Gravatar孙翙轩 100 0.029 s 3.37 MiB C++
Gravatarchenbp 100 0.029 s 3.40 MiB C++
Gravatarawa 100 0.030 s 3.29 MiB C++
Gravatar学习使我快乐 100 0.030 s 3.32 MiB C++
Gravataryuan 100 0.030 s 3.33 MiB C++
Gravatar不知所云 100 0.030 s 3.33 MiB C++
关于 扑克牌 的近10条评论(全部评论)
bushi
Gravatarnoi加油
2024-11-06 22:08 1楼

4049. [CSP 2024 J]扑克牌

☆   输入文件:poker.in   输出文件:poker.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

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

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

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

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

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

【输入格式】

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

接下来 $n$ 行:

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

【输出格式】

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

【样例1输入】

1
SA

【样例1输出】

51

【样例1说明】

这一副牌中包含一张黑桃 A,小 P 还需要借除了黑桃 A 以外的 $51$ 张牌以构成一副完整的扑克牌。

【样例2输入】

4
DQ
H3
DQ
DT

【样例2输出】

49

【样例2说明】

这一副牌中包含两张方片 Q、一张方片 T(方片 $10$)以及一张红桃 $3$,小 P 还需要借除了红桃 $3$、方片 T 和方片 Q 以外的 $49$ 张牌。

【样例3】

见选手目录下的 poker/poker3.inpoker/poker3.an

样例下载

【样例3说明】

这一副扑克牌是完整的,故不需要再借任何牌。

该样例满足所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。

【数据规模与约定】

对于所有测试数据,保证:$1 \leq n \leq 52$,输入的 $n$ 个字符串每个都代表一张合法的扑克牌,即字符串长度为 $2$,且第一个字符为 D C H S 中的某个字符,第二个字符为 A 2 3 4 5 6 7 8 9 T J Q K 中的某个字符。

特殊性质 A:保证输入的 $n$ 张牌两两不同。

特殊性质 B:保证所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。