[第六届蓝桥杯省赛C++B组]牌型种数
C++ 蓝桥 省赛 第六届
2023-09-11 14:18:49 时间
题目来源:第六届蓝桥杯省赛C++B组
算法标签:dfs,模拟
题目描述:
小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
题目答案:
3598180
题目思路:
首先我们要了解卡牌除了大小王之外A到K这13个系列
,每个系列有4
张牌.
我们此时不考虑花色, 不考虑先后顺序,只考虑点数。
如果我们假设从A到K发放卡牌,每次到自己手上的数量存在0,1,2,3,4一共五可能
,发完一次之后当前花色的‘剩余数量为0.
则我们只需要dfs模拟这个过程,当手上卡牌为13张之后种类+1
,如果所有花色剩余数量都为0
或者卡牌大于13
张则退出
。
题目代码:
#include <iostream>
using namespace std;
int ans;
void dfs(int s,int k)//s代表拿到的牌的总数,k代表有多少花色被清空
{
if (s > 13 || k > 13)return;
if (s == 13 && k == 13) { ans++; return; }//拿到13张牌,且所有花色都被清空,答案+1
for (int i = 0; i <=4; i++)dfs(s + i, k + 1);
}
int main()
{
dfs(0, 0);
cout << ans;
return 0;
}
相关文章
- CodeBlocks开启C++11支持
- 【C/C++学院】0815-函数包装器/CPP类型转换/函数模块/动态数组
- 【C/C++学院】0802-链式栈/链表队列以及优先队列/封装链表库
- Win10系列:VC++绘制几何图形5
- java实现第二届蓝桥杯最小公倍数(c++)
- java实现第二届蓝桥杯最小公倍数(c++)
- c++中sizeof的分析
- 第十二届蓝桥杯省赛第二场C++B组真题(节选)
- 蓝桥杯官网 试题 PREV-253 历届真题 质数行者【第十一届】【决赛】【研究生组】【C++】【Java】两种解法
- 蓝桥杯官网 试题 PREV-281 历届真题 时间显示【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- C++中的queue类、QT中的QQueue类
- 最好的 C++ 模板元编程干货!
- 2018蓝桥杯C++A组:三角形面积(海伦公式)
- C++设计模式——组合模式(composite pattern)
- c++ vector 初始化_C++--vector()的用法
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- C++重载赋值操作符
- C++ 表达式语句 海伦的故事
- 关于C++中野指针的说明
- 第十三届蓝桥杯C++B组国赛C题——卡牌 (AC)
- 第十三届蓝桥杯国赛 C++ B 组 J 题——搬砖(AC)
- 第十三届蓝桥杯C++B组省赛 J 题——砍竹子(AC)
- 第十三届蓝桥杯 C++ C 组省赛 J 题——重复的数 (AC)
- 第十三届蓝桥杯省赛 C++ C 组 E 题、Python B组 D题、PythonC组 D 题—— 数位排序(AC)
- 第十三届蓝桥杯 C++ B 组省赛 G 题———积木画(AC)
- 第十三届蓝桥杯省赛C++组、Java组真题—— 求和 (AC)
- 第十三届蓝桥杯C++B组国赛D题——最大数字(AC)
- 【跟学C++】C++STL标准模板库——算法详细整理(中)(Study18)