P11227 [CSP-J 2024] 扑克牌(民间数据)

​​​​​​原题链接

这道题在洛谷上被评定为红题,也确实挺简单的,就用到了STL里的set,set里的元素不会重复,就只需要把元素放到set里,在计算长度就可以,最后用52减去长度即可。

#include <bits/stdc++.h>
using namespace std;
int n;
int ans;
string s;
set<string> q;
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> s;
		q.insert(s);//将元素插入q
	}
	ans=52-q.size();//计算长度,也就是不重复的牌,最后用52-q.size(),表示最终答案
	cout <<ans<< endl;
	return 0;
}

提供的引用内容中未涉及“01:CSP - J2024 - 1扑克牌相关问题”,所以无法依据引用给出使用C语言解决该问题的方法。一般来说,使用C语言解决扑克牌相关问题,通常会涉及到以下几个步骤: ### 定义扑克牌数据结构 可以使用结构体来表示扑克牌,包含花色和点数等信息。 ```c #include <stdio.h> #include <stdlib.h> // 定义扑克牌结构体 typedef struct { int suit; // 花色,例如 0-3 表示不同花色 int rank; // 点数,例如 1-13 表示 A-K } Card; ``` ### 初始化扑克牌 ```c // 初始化一副扑克牌 void initializeDeck(Card deck[]) { int index = 0; for (int suit = 0; suit < 4; suit++) { for (int rank = 1; rank <= 13; rank++) { deck[index].suit = suit; deck[index].rank = rank; index++; } } } ``` ### 洗牌 ```c #include <time.h> // 洗牌函数 void shuffleDeck(Card deck[]) { srand(time(NULL)); for (int i = 51; i > 0; i--) { int j = rand() % (i + 1); Card temp = deck[i]; deck[i] = deck[j]; deck[j] = temp; } } ``` ### 发牌 ```c // 发牌函数 void dealCards(Card deck[], int numPlayers, int numCardsPerPlayer) { for (int player = 0; player < numPlayers; player++) { printf("Player %d's cards:\n", player + 1); for (int i = 0; i < numCardsPerPlayer; i++) { int cardIndex = player * numCardsPerPlayer + i; printf("Suit: %d, Rank: %d\n", deck[cardIndex].suit, deck[cardIndex].rank); } printf("\n"); } } ``` ### 主函数 ```c int main() { Card deck[52]; initializeDeck(deck); shuffleDeck(deck); int numPlayers = 4; int numCardsPerPlayer = 5; dealCards(deck, numPlayers, numCardsPerPlayer); return 0; } ``` 以上代码是一个简单的扑克牌处理示例,实际的“01:CSP - J2024 - 1扑克牌相关问题”可能有不同的具体要求,需要根据具体问题进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值