Poker简单蒟蒻题解
查看原帖
Poker简单蒟蒻题解
1407082
yht0012楼主2024/11/4 23:07

啧啧,这道题是我见过比较简单的一道题了,不过考场时竟然没有写出来,QWQ. 废话不多说,题目中说了求除了小 P 有的扑克牌外,还得借小 Q 多少扑克牌。那么,通过暴力来写,因为不排除重复扑克牌的情况下,所以,我们可以用52个flag来表示52张不同扑克牌,那么每次检查扑克牌,标记一下,还可以去重,用一个变量每次更新拥有的牌数,最后用52减一下即可。(为什么要设那么多flag,因为其他方法不会。。。)

正解开始:用字符串输入还得记录花色和点数,我觉得有点麻烦。。。所以,我用了结构体,输入后进行结构体排序,先比花色再比点数,最后输出时判断一下并且去重,完了。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int ret = 52;
struct Pok{
	char hs,ds;
}c[60];
int cmp(Pok a,Pok b){
	if(a.hs == b.hs){
		if(a.ds == b.ds){
			
		}
		return a.ds > b.ds;
	}
	return a.hs > b.hs; 
}
int main(){
	int n;
	cin >> n;
	for(int i = 0;i < n;i++){
		cin >> c[i].hs >> c[i].ds;
	}
	int cnt = 0;
	sort(c,c + n,cmp);
	for(int i = 0;i < n;i++){
		if(c[i].ds != c[i - 1].ds && c[i].hs == c[i].hs){
			ret--;
		}
	}
	cout << ret;
	return 0;
}

代码尚未完善,能否哪些大神指点一下 ? ? ?

2024/11/4 23:07
加载中...