2015蓝桥杯 牌型种数(回溯dfs)
2016-03-07 19:43
267 查看
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
题解:一共是记号为A,2,3,4,5,6,7,8,9,10,J,Q,k的十三个元素,每个元素的情况可能是0,1,2,3,4。这十三个元素的和为13即可。回溯穷举再剪枝即可。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
题解:一共是记号为A,2,3,4,5,6,7,8,9,10,J,Q,k的十三个元素,每个元素的情况可能是0,1,2,3,4。这十三个元素的和为13即可。回溯穷举再剪枝即可。
#include<iostream> using namespace std; int a[13+5]; int count=0; int sum=0; void dfs(int cur) { if(cur==13) { if(sum==13) count++; return ; } if(sum>13) return ; for(int i=0;i<=4;i++) if(sum+i<=13) { a[cur]=i; sum+=i; dfs(cur+1); sum-=i; } } int main() { dfs(0); cout<<count<<endl; return 0; }
相关文章推荐
- TCP/IP协议详解:卷一----笔记(4)UDP
- 【Android】更改 TimePicker 字体颜色
- 信息安全实验四:information-security
- 信息安全实验三:privilege-separation
- Codeforces Round #345 (Div. 2) [Codeforces651]
- acm70
- 信息安全实验二:return-to-libc
- 字符串(一)
- 安卓原生系统怎么进入官方Recovery,显示 无命令 的解决方法
- 各大互联网公司架构演进之路汇总
- Cpp--拷贝构造函数
- 解决jsp编写过程中换另一个jsp可以忽视登录过程
- java中Queue简介
- 信息安全实验一:buffer-overflow
- OOP作业
- DirectShow摄像头采集
- RSA 加密解密 关于javax.crypto.BadPaddingException: Blocktype错误的几种解决方法
- ubuntu操作系统安装(二) ftp
- acm56
- 第一次上机实践 项目一 宣告主权