第六届蓝桥杯C/C++B组第七题 牌型种数(回溯)
2016-02-09 10:26
225 查看
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
有13种牌型,每种可以是0、1、2、3、4张,5种可能。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
有13种牌型,每种可以是0、1、2、3、4张,5种可能。
#include<stdio.h> int ans=0; int sum=0;//记录当前手中的牌的数目 void dfs(int n) { if(sum>13)//大于13不可行 return ; if(n==14)//13种牌型已经搜索完毕 { if(sum==13) ans++; return ; } else { for(int i=0; i<=4; i++) { sum+=i; dfs(n+1);//继续往下搜索 sum-=i;//消除 } } } int main() { dfs(1);//从第一种牌开始搜索 printf("%d\n",ans); return 0; }
相关文章推荐
- C#避免回溯方法心得
- 回溯算法 图m着色问题
- 《收集苹果》 动态规划入门
- 《DNA比对》蓝桥杯复赛试题
- 《背包问题》 动态规划
- 连号区间 蓝桥杯 算法
- 封装好的Folyd建图,C++源码
- 蓝桥杯——历届试题(1-10)
- 2015 蓝桥杯第六届 省赛java A组第7题 扑克牌组合
- matlab与c/c++混合编程
- matlab与c/c++混合编程——c/c++调用matlab
- C/C++常用的调试宏
- VC内存泄露检查工具:VisualLeakDetector
- 内联函数总结
- usb体系结构
- VC结构体实现类似数组的下标操作符功能
- C/C++ 嵌套结构体动态内存管理实现
- C++调用gSoap编写的WEBSERVICE与C#.NET间接口自定义结构体不能重复使用
- 处理VC开发的webservice在C#.NET中中文乱码问题
- 蓝桥杯准备