CSP-J2024年T1题解

小木棍 C++题解 内存限制: 1024 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较。 阅读详情

 [CSP-J 2024 -- T1] 扑克牌

内存限制:256 MiB时间限制:1000 ms输入文件:poker.in输出文件:poker.out

题目类型:传统评测方式:文本比较

提交提交记录返回比赛

题目描述

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

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

我们称一副扑克牌是完整的,当且仅当对于每一种花色和每一种点数,都恰好有一张牌具有对应的花色和点数。由此,一副完整的扑克牌恰好有  张牌。以下图片展示了一副完整的扑克牌里所有的 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

1
SA

样例输出 #1

51

样例 #2

样例输入 #2

4
DQ
H3
DQ
DT

样例输出 #2

49
数据范围与提示

提示

【样例 1 解释】

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

【样例 2 解释】

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

【样例 3 解释】

见选手目录下的 poker/poker3.in 与 poker/poker3.ans。

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

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

【数据范围】

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

测试点编号特殊性质
11A
2~452
5~7B
8~10无

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

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

要是有人不会玩扑克,一看上去会懵,其实,这是一道大水题,循环暴力或map即可。

代码:

#include<bits/stdc++.h>
using namespace std;
long long t,i=0;
long long cnt=0;
int main(){
	freopen("poker.in","r",stdin);
	freopen("poker.out","w",stdout);
	char a[60],b[60];
	cin>>t;
	while(t--){
		i++;
		cin>>a[i]>>b[i];
		bool f=1;
		for(int j=1;j<i;j++){
			if(a[j]==a[i]&&b[j]==b[i])f=0;
		}
		if(f==1)cnt++;
	}
	cout<<52-cnt;
	return 0;
}

扑克牌游戏(c++版) 在设计 c++ 扑克牌课程的过程中,我遇到了一些问题,其中一些是技术性的问题,另一些是设计上的问题。技术性问题:如何定义类和其相关关系:在开始设计时,我遇到了如何定义类和它们之间的关系,例如玩家类如何与牌类进行关联,如何定义公共属性或方法等等。设计上的问题:1.程序代码逻辑:在编写代码逻辑的过程中,逻辑相对清晰的部分很快就完成了。但是当问题出现时,程序的结构就变得混乱。这时,我需要重新思考代码结构,并将其重构。2. 阅读详情

相关推荐

CSP-J2024 全网首发

小 P 从同学小 Q 那儿借来一副 n 张牌的扑克牌。本题中我们不考虑大小王,此时每张牌具有两个属性:花色和点数。花色共有 4种:方片、草花、红桃和黑桃。点数共有 13 种,从小到大分别为A 2 3 4 5 6 7 8 9 T J Q K。注意:点数 10 在本题中记为 T。我们称一副扑克牌是完整的,当且仅当对于每一种花色和每一种点数,都恰好有一张牌具有对应的花色和点数。由此,一副完整的扑克牌恰好有4x13=52 张牌。

psc299的博客 1565

扑克牌(poker)

2024年CSP-J第二轮第一题

w14785050252的博客 2081

2024 CSP-J 题解

​ 题目给出了一整套牌的定义,但是纯粹在扯淡,完全没有必要去判断给出的牌的花色和点数,我们用一个循环来依次读入每一张牌,如果这个牌在之前出现过,我们就让答案减一。这里建议用map、unordered_set或者给每一种牌一个编号,然后用数组存储也可以。

ZXTpower的博客 1971

洛谷 P11227:[CSP-J 2024] 扑克牌 - C++题解

题目要求统计一副不含大小王的扑克牌中缺少的牌数。输入给出若干张牌(可能重复),需要去重后计算剩余牌数。标准扑克共有52张牌,花色为S/H/C/D,点数为A23456789TJQK。 解题方法: 使用二维数组标记存在的牌(40分部分测试点可直接用52-n计算) 通过map或set自动去重后计算剩余牌数 用unique函数对排序后的输入去重 关键点:正确处理重复输入,准确转换花色和点数。最优解法时间复杂度为O(n),空间复杂度O(1)(数组法)或O(n)(容器法)。 示例代码展示了四种去重方法,其中数组映射法效

2301_79600967的博客 2373

CSP-J2024题解

这是因为,set 可以自动去重,去除重复的牌(字符串)后,剩下的字符串就是实际拥有的不同的牌。转移方程:f[i+1][j][t]​=visd[j−1][S[j][t]​​]||visu[j+1][S[j][t]]​​。若 S[j][t]​=1,则f[1][j][t]​=true,否则f[1][j][t]​=false。不难发现有很多8并且是产生火柴最多的数字根据特殊性质发现规律 找出7的倍数和7的倍数+1的n。定义状态g[i][j][t]​表示在第i轮中,能否以第j个数字序列的第t个位置作为终点。

2403_87651351的博客 1223

CSP2024-S 题解

rp++

christ_lrs的博客 1716

CSP-J2024年前三题题解

T1:CSP-J2024年T1题解-优快云博客 T2:CSP-J2024年T2题解-优快云博客 T3:CSP-J2024年T3题解-优快云博客

wcs2014的博客 683

CSP-J系列【2024】P11229 [CSP-J 2024] 小木棍题解

摘要:本文介绍了2024年CSP-J竞赛中的小木棍问题,要求用n根木棍拼接数字,找出满足条件的最小正整数。题目分析两种解法:DFS剪枝法(通过排序优化和多种剪枝策略提高效率)和动态规划法(适合小规模数据)。比较了两种方法的时间复杂度、适用场景,并讨论了剪枝优化、边界处理等关键问题。该问题在资源分配、货物装载等领域有实际应用价值,掌握组合优化算法对解决工程问题很有帮助。

djy2024的博客 1068

2024CSP-J T4 题解

很久没写题了,写了点小bug RE了一段时间。例如把写成了j

qq_56691888的博客 3244

[CSP-J 2024] 扑克牌 题解

讲解扑克牌的最详细小学生教程来啦!

一只小蒟蒻的博客 1142

CSP-J 2024 T4 接龙【题解】

CSP-J 2024 T4 接龙【题解】

applelin的博客 1095

CSP-J2024 T1 - T3 详解 && CSP -J2025 注意事项

本文解析了CSP-J2024考试中T1至T3的题目解法。T1使用桶排统计缺失扑克牌;T2通过DFS实现地图探险,强调多组测试需清空数据;T3采用数学规律解题,针对n模7的不同余数给出相应解法。文章提供了AC代码,适合初学者参考。同时提醒考生注意2025年考试中的这些要点,如基础算法的应用和数学思维的培养。

初心如磐,逐梦前行||b站@一个空客迷 2545

2024CSP-J复赛真题题解-T1:扑克牌

2024CSP-J复赛真题题解-T1:扑克牌

CSP-J 2024 T2地图探险 题解

省流:一坨模拟。

2504_92201848的博客 1857

从“要啥”到“咋测”:手把手拆解Aspice SWE.1需求分析,为你的车载/嵌入式项目避坑

本文深入解析Aspice SWE.1需求分析在车载/嵌入式项目中的关键作用,帮助开发者将模糊的系统需求转化为可执行、可验证的软件需求。通过实战案例和结构化方法,详细拆解功能需求原子化、非功能需求工程化表达等核心技巧,为项目避坑提供实用指南。

weixin_31682031的博客 257

CentOS8静默安装Oracle11.2.0.1

背景 新安装oracle,用静默安装方式就不需要安装图形界面了,省时省力。 前期准备工作与图形化安装一样,如创建用户|用户组、环境变量、内核参数、创建目录等. 可参考图形化安装,链接:https://blog.youkuaiyun.com/heroicpoem/article/details/104229369 环境 平台 版本 操作系统 centOS 8 Oracle 11gR2 1.响应文件 响应文件的内容就是图形化安装时手工设置的选项内容。 解压后,database/response/db

heroicpoem的专栏 4518

CSP2024-J 题解

rp++

christ_lrs的博客 1100

matsim教程及其案例

MATSim 是一个强大的交通仿真工具,适合研究交通政策、出行行为优化和城市规划。建议从官方示例入手,逐步尝试修改参数和扩展功能。遇到问题时,优先查阅官方文档和社区讨论。(Multi-Agent Transport Simulation Toolkit)的教程和案例资源整理,涵盖基础入门、核心概念、实际应用案例及学习路径。MATSim 是一个开源的、基于多智能体的交通仿真框架,用于模拟城市交通系统中的出行行为、交通流量和交通政策影响。

weixin_70682362的博客 1092

CSP-J 2024 T1扑克牌题解

题解

2504_92201848的博客 1775

无需云服务器:飞牛云NAS+Docker搭建本地WordPress站点全球访问

在数字化浪潮中,网站搭建已成为个人和企业在推广自身品牌与业务的首要选择。飞牛云新推出的fnOS,这款集多功能于一身的nas系统,以其卓越的性能和灵活性,成为理想的本地网站部署平台。本文将带你一探如何在飞牛云NAS上通过Docker部署WordPress,并利用cpolar实现全球访问。

LT15171009269的博客 6528

从零开始掌握RDMA拥塞控制:原理、算法与实战解析

本文深入解析了RDMA拥塞控制的核心原理与实战配置。RDMA依赖无损网络保障高性能,其关键在于PFC与ECN两大技术协同防止丢包。文章重点剖析了主流算法DCQCN的工作机制与参数调优,并简要介绍了HPCC与TIMELY等前沿算法。最后提供了在Linux上配置RoCEv2与DCQCN的详细步骤及性能调试方法,帮助读者从零构建稳定的RDMA网络环境。

weixin_28452161的博客 135

2024年CSP/J题解

2024年CSP/J题解

我喜欢代码,并不是喜欢代码本身,而是喜欢把心融入代码,找寻其中的真理 1477

浮栅晶体管原理深度解析:热电子注入与FN隧穿如何实现1/0存储

本文深入解析了浮栅晶体管的工作原理,重点探讨了热电子注入与FN隧穿机制如何实现1/0存储。作为现代闪存芯片的核心技术,浮栅晶体管通过独特的结构设计实现非易失性存储,文章详细分析了其编程与擦除的物理过程,并对比了两种机制的优缺点,为闪存性能优化提供了理论基础。

weixin_30363285的博客 371

2024 CSP-J2 CSP-S2 第2轮 复赛 真题 讲解、解析

2024 CSP-J2 CSP-S2 第2轮 复赛 真题 讲解、解析

青少年趣味编程 3317

迅投miniQMT量化交易实战指南:从入门到自动化交易系统构建

迅投miniQMT量化交易实战指南摘要 本文全面介绍迅投miniQMT量化交易系统的开发流程,重点包括: 环境配置:详细说明miniQMT极简模式的安装步骤,包括xtquant库获取、Python版本要求及验证方法 行情数据模块:解析xtdata模块的核心功能,包括: 获取板块分类与股票列表 查询合约基础信息 下载历史K线数据(支持tick、分钟、日线等周期) 交易执行模块:介绍xttrader模块的交易API,涵盖: 账户连接与初始化 订单管理(下单、撤单、查询) 持仓与资产查询 实战开发:提供可直接运行

huanghm88的专栏 664

SAP_ABAP_MM_BAPI清单案例教程——采购发票校验/预制_BAPI_INCOMINGINVOICE_PARK_MIRO

SAP ABAP BAPI_INCOMINGINVOICE_PARK BAPI 采购发票预制 采购发票校验 代码模版

java_zhong1990的专栏 1961
上一篇: 2024年CSP-X题解
下一篇: CSP-J2024年T2题解
wcs2014
博客等级 码龄3年 143粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值