0
点赞
收藏
分享

微信扫一扫

【蓝桥杯_真题演练】 牌型种数(C++_dfs)


题目

小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

请填写该整数,不要填写任何多余的内容或说明文字。

答案

3598180

思路

每个人可以拿13张牌,你只需要枚举每种牌拿了几张,凑到13张,组合数就加一。

题解

#include<bits/stdc++.h>//3598180
using namespace std;

int sum = 0;
void dfs(int type, int num) {
	if (num == 13)
	{
		sum++;
		return;
	}
	if (type > 12)
		return;
	for (int i = 0; i < 5; i++)
		dfs(type + 1, num + i);
}
int main()
{
	dfs(0, 0);
	cout << sum;
	return 0;
}


举报

相关推荐

0 条评论