首页 > 其他分享 >About[CSP-J 2024]扑克牌

About[CSP-J 2024]扑克牌

时间:2024-11-23 11:03:04浏览次数:12  
标签:字符 About 扑克牌 张牌 52 2024 方片 点数 CSP

题目描述

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

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

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

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

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

输入格式

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

接下来n行:

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

输出格式

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

输出样例

还要借几张牌

输入 #1

1

SA

输出 #1

51

输入 #2

4

DQ

H3

DQ

DT

输出 #2

49

【样例 1 解释】

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

【样例 2 解释】

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

【数据范围】

对于所有测试数据,保证:1≤n≤52输入的n个字符串每个都代表一张合法的扑克牌,即字符串长度为2,且第一个字符为DCHS中的某个字符,第二个字符为A23456789TJQK中的某个字符。

测试点编号

n≤n

特殊性质

1

1

A

2∼4

52

A

5∼7

52

B

8∼10

52

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

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

我们先来看特殊性质 A

保证输入的n张牌两两不同。

那么我们可以认为只输出52-n都可以得到40分

代码如下:

这是除0分外最差的结果,但是不能止步于此

我们可以将所有的字符都转换为ASCLL码值,用一个大数组给累加起来

这一步并不难实现,只是稍稍有些复杂而已,仅此而已。

代码如下:

但是这还不是最优解,虽然我们得了100分

可是明显可以缩进

代码如下:

但是我们可以发现这道题目与明明的随机数十分相似

都是去重&&排序,看上去很简单,实则一点也不难

直接套进去,代码如下:

这段代码是2024年信息学奥林匹克竞赛的第一题也是非常之简单好吧,没看懂的多看几遍

标签:字符,About,扑克牌,张牌,52,2024,方片,点数,CSP
From: https://blog.csdn.net/GHX54188/article/details/143984198

相关文章

  • About函数大杂烩
    函数在C++编辑中可以给我们许多便利具体如下:首先是我们熟知的main输出n个*接下来就是用函数来输出n个*特别备注:void是不带返回值的例如;我点一分外卖,不光要付钱还要叫外卖员给我送外卖,这就是带返回值的函数但是void好比如老师叫你擦黑板,不用把黑板搬给老师看,擦完就好......
  • 2024最火的资源牛知识付费系统小程序+PC+H5三端数据互通支持采集资源开源版
    下载:https://pan.baidu.com/s/19oircaQvJeE_nsX_jtjsBw?pwd=8888 .搭建:服务器配置1h2g以上均可使用运行环境php7.2sql5.6把防跨站点开1、在宝塔新建个站点,php版本使用7.2,将“后端”文件夹里的文件上传到站点根目录,运行目录设置为/public,安装好SSL证书,......
  • 2024赣ctf-web -wp
    1.你到底多想要flag???首先来解决第一关:先了解一下stripos();并且此函数处理数组返回false。而且pre_match同样遇见数组是返回false(解释一下正则i:这是正则表达式的修饰符,代表“不区分大小写”,意味着“FLAG”、“Flag”等大小写形式都会被匹配。s:这是正则表达式的修饰符,代表......
  • 浏览器指纹修改指南2024 - 分析Geolocation API实现(十)
    在geolocation.h文件中,可以找到一个私有成员Member<GeoNotifierSet>one_shots_;Member<GeolocationWatchers>watchers_;//GeoNotifiersthatareinthemiddleofinvocation.////|HandleError(error)|and|MakeSuccessCallbacks|needtoclear|one_sho......
  • 堪称2024最强Java八股文面试题汇总
    1.Java的基本数据类型有哪些?答:Java的基本数据类型包括:整型:byte, short, int, long浮点型:float, double字符型:char布尔型:boolean2.Java中的变量作用域有哪些?答:Java中的变量作用域主要有:类变量(静态变量):作用域为整个类,可以在类的任何地方访问。实例变量:作用域为类的非......
  • 深入浅出:SpringBoot启动流程源码分析(持续更新中......)最新日期:2024年10月29日
    Hello,大家好,我是此林。今天来深入底层讲一讲SpringBoot是如何启动的,也就是我们单击运行SpringBoot启动类,它底层发生了什么?SpringBoot启动类很简单,只有一行代码。我们点进run()方法。我们发现,它底层其实进行了两步操作。第一步是new出一个SpringApplication对象,第二个是......
  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis
    前言春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备......
  • 2024高等代数【南昌大学】
    已知f(x)=1+x+x2+⋯+xn−1f(x)=1+x+x^2+\cdots+x^{n-1}f(x)=1+x+x2+⋯+xn−1,证明:f(x)∣[f(x)+xn]2−xnf(x)\mid\left[f(x)+x^n\right]^2-x^nf(x)∣[f(x)+xn]2−xn。xf(x)=x+x2+x3+⋯+xnxf......
  • 高级java每日一道面试题-2024年10月24日-JVM篇-说一下JVM有哪些垃圾回收器?
    如果有遗漏,评论区告诉我进行补充面试官:说一下JVM有哪些垃圾回收器?我回答:1.Serial收集器特点:Serial收集器是最古老、最稳定的收集器,它使用单个线程进行垃圾收集工作。在进行垃圾回收时,它会暂停所有用户线程,即StopTheWorld(STW)。单线程工作,适合单核CPU。在年......
  • 高级java每日一道面试题-2024年10月23日-JVM篇-说一下JVM有哪些垃圾回收算法?
    如果有遗漏,评论区告诉我进行补充面试官:说一下JVM有哪些垃圾回收算法?我回答:在Java虚拟机(JVM)中,垃圾回收(GarbageCollection,GC)是一项非常重要的功能,用于自动管理应用程序的内存。JVM采用多种垃圾回收算法来决定何时以及如何回收不再使用的对象所占用的内......