蓝桥杯 牌型种数
2016-03-17 10:57
204 查看
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
解题思路:其实52张牌没必要分完,我只需要看一个人就行了。每个人分到13张牌,概率一样。自己手里能拿到的初始牌型组合无非就是从13种类型牌(52张)里面抽出13张,因此,编号1~13的牌每种类型的取值范围是0~4,所以每种牌取法从0~4遍历一次,答案就出来了。
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
解题思路:其实52张牌没必要分完,我只需要看一个人就行了。每个人分到13张牌,概率一样。自己手里能拿到的初始牌型组合无非就是从13种类型牌(52张)里面抽出13张,因此,编号1~13的牌每种类型的取值范围是0~4,所以每种牌取法从0~4遍历一次,答案就出来了。
#include<iostream> using namespace std; int sum=0; void dfs(int n,int cartNum){ if(n>13){ return; } if(cartNum>=13) { if(cartNum==13) sum++; return; } else{ dfs(n+1,cartNum); dfs(n+1,cartNum+1); dfs(n+1,cartNum+2); dfs(n+1,cartNum+3); dfs(n+1,cartNum+4); } } int main(){ dfs(0,0); cout<<sum<<endl; }
相关文章推荐
- VLC播放RTSP视频延迟问题
- C++实验1-数字加减
- MySQL逻辑运算符 NULL运算结果
- C#自定义控件加滑动条的简单实现
- HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
- 手动加支付宝遇到的错误--iOS
- xgboost 安装
- libevent中的Timer使用
- python网络学习(04)
- iOS __func__标识符
- C# 对多个集合和数组的操作(合并、去重复、判断)
- CentOS-6.5-64位下搭建jdk7 + mysql5.5 + tomcat7 + nginx
- 浅谈Web缓存
- 比勤奋更重要的,是深度思考的能力
- IOstat小结
- Javascript - 获取Json结构的表单数据
- windows7安装oracle 10g
- Android使用SharedPreferences实现登录帐号和密码的保存方法简介
- HTTPS单向认证和双向认证
- iOS开发:自定义控件实现手势解锁