首页 > 其他分享 >CSP-J2024 T1(poker/扑克)题解

CSP-J2024 T1(poker/扑克)题解

时间:2024-10-30 13:43:09浏览次数:6  
标签:poker set 题解 张牌 52 花色 str T1 CSP

洛谷CSP-J 2024自测指路


前情提要:虽然洛谷讨论区里大多数都是倾向用哈希解决该题,但实际上可以用一些邪门小技巧来A这道题awa


先来读题。

题目中说小 P 想知道他至少得向小 S 借多少张牌,才能让从小 S 和小 Q 借来的牌中,可以选出52张牌构成一副完整的扑克牌。

题目说了是求至少要借多少牌,而扑克牌总共只有 \(52\) 种,这意味着我们当下若有 \(x\) 牌,那么只需要再借 \(52-x\) 张牌即可。

面对可能出现的花色重复的扑克牌,我们可以使用set容器的特性去重。

考虑时间复杂度,set的复杂度是 \(O(log\ n)\) ,而输入时的循环则是 \(O(n)\),在该题中 \(n≤52\) ,时间限制则为 \(1000\ ms\),所以思路可行。

实现代码如下:

#include<bits/stdc++.h>//伟大的万能头
using namespace std;
set<string>st;//去重用的set容器
int main(){
	//By Chengliye
	int n;
	cin>>n;
	while(n--){
		string str;
		cin>>str;//输入花色
		st.insert(str);//将花色添加至st中,若已存在该花色则不添加
	}
	cout<<52-st.size();//st.size()代表已经借到的卡牌种类数量
	return 0;
} 

若有错漏,欢迎指出。

标签:poker,set,题解,张牌,52,花色,str,T1,CSP
From: https://www.cnblogs.com/chengliye/p/18515695/CSP-J2024T1

相关文章

  • 01背包问题(经典dp题解)
    有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 ii 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来......
  • 2024湖南省赛题解(不全)
    湖南省赛K题题意你可以免费移动经过一条边,求在满足在任意点开始都能成功渡劫的最小花费。思路建一个虚拟源点,连向每一个点,将这条边的边权设为这个点渡劫需要的花费。跑最短路,这样会把每一种情况囊括在内,但是没有考虑免费的移动。建一个dist2数组,用来记录每一个点当前......
  • [一直更新中]一句话题解
    目录一句话题解2024.10.29AT_abc290_fAT_arc156_c2024.10.30P5749[IOI2019]排列鞋子AT_abc285_e一句话题解不能什么题都随便写写就过了,留点印象好一点。一直更新。2024.10.29AT_abc290_f组合数数。满足树的形态要有\(\sumdeg_i=2n-2\)。考虑目前有\(k\)个儿子节点,直径......
  • 易优cms系统报错unserialize(): Error at offset 0 of 1571 bytes_Eyoucms系统报错问
    解决方案清除缓存通过FTP访问服务器。导航至 /data/runtime 目录。删除该目录下的所有文件和文件夹。升级系统登录后台。检查是否有可用的更新。升级到最新版本,以确保已知的问题已被修复。检查代码如果问题仍然存在,可以检查 \corelibrary\think\cache\dri......
  • Educational Codeforces Round 171 (Rated for Div. 2) 10.28 ABCD题解
    EducationalCodeforcesRound171(RatedforDiv.2)10.28(ABCD)题解A.PerpendicularSegments数学(math)计算几何(geometry)题意:给定一个\(X,Y,K\)。需要求解出二维坐标系中的四个点\(A,B,C,D\),满足:\(0\leqA_x,B_x,C_x,D_x\leqX\),\(0\leqA_y,B_y,C_y,D_y\leqY\)。并......
  • 「KTSC 2024 R2」跳跃游戏 题解
    睡了一觉,打呼噜被老胡叫醒了/lh睡醒场切,vectorfind是\(O(size)\)的调了40min/fn思路考虑最终得到了\(\mathcalO(Q)\)个连续的\((len,val)\)代表线段长度和线段的\(A_i\),可以用map简单得到。结论:必然存在一种方案,使得在\((i-K,i]\)中必然存在跳跃的起点......
  • ARC186A 官方题解-ChatGPT翻译
    基于图的重新表述对于一个元素为0或1的\(N\timesN\)矩阵\(A\),考虑从一个完整的二部图构建的有向图。该图的顶点由两部分组成:\((R_1,\dots,R_N)\)和\((C_1,\dots,C_N)\),其边的方向如下:如果\(A_{i,j}=1\),则边从\(R_i\)指向\(C_j\)如果\(A_{i,j}=0\),则边从\(C_i......
  • P9131 [USACO23FEB] Problem Setting P 题解
    P9131[USACO23FEB]ProblemSettingP题解注意到最终形成的困难序列是一个不断包含的子集的关系,包含是非严格单调的,考虑转化为单调的形式易于计数dp。具体地,对于一些相同的困难值\(i\),算出其内部排列数\(g(i)\),于是转化成了单调的dp形式。于是实际上计算\(dp_{i}\)表示......
  • [KTSC 2024 R1] 最大化平均值 题解
    先考虑封闭序列的个数,发现只有\(\mathcalO(n)\)个,可以建出小根笛卡尔树,以\((a_i,i)\)作为权值,于是相同的一定是\(i,rs_i,rs_{rs_i},\dots\)。考虑如果没有重复,询问相当于给出一棵树,每次询问\(subtree(u)\),保留一个含\(u\)的联通块的最大平均值。可以把每个节点用向......
  • 0x02 Leetcode Hot100 哈希
    前置知识掌握每种语言的基本数据类型及其时间复杂度。Python:list、tuple、set、dictC++:STL中的vector、set、mapJava:集合类中的List、Set、Map为什么是哈希?在不同语言中,对于字典(dict)类的数据都会先将其键(key)进行哈希(Hash)运算,这个Hash值决定了键值对在内存中的存储位置,因此......