蓝桥杯 - 牌型种数(dfs)
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
题目分析:又是被zx学长秒穿的一道题目,一开始我抽象出来的模型就不对,导致设计出来的算法超时,无法跑出正确答案,我抽象出来的模型是52张牌,随便选13个,就写了个dfs去跑,很显然是超时的
正确的模型应该是13个桶,每个桶中有4张牌,我们应该依次从桶中摸牌,不重不漏
模型抽象出来了,dfs就比较好设计了,当我们面对这一个桶的时候,可以摸的牌有五种选择:
- 不摸
- 摸1张
- 摸2张
- 摸3张
- 摸4张
然后一直往下dfs就好了。。时间复杂度是5的(13-13/4)=10次方,大概也才1e7,增加了各种剪枝和特判之后,在本地差不多两三秒就跑出来了
代码:
#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
#include<unordered_map>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int ans=0;void dfs(int pos,int num)//pos:当前到了第几个桶 num:现在手里有多少张牌
{if(num==13)//如果满足条件,答案加一{ans++;return;}if(num>13)//如果越界,直接返回return;if(pos==13)//同上return;for(int i=0;i<=4;i++)//五种情况爆搜dfs(pos+1,num+i);
}int main()
{
// freopen("input.txt","r",stdin);
// ios::sync_with_stdio(false);dfs(0,0);cout<<ans<<endl;return 0;
}
蓝桥杯 - 牌型种数(dfs)相关推荐
- 蓝桥杯2015初赛-牌型种数-dfs
题目描述 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
- 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - F. 牌型种数
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
- 第六届蓝桥杯【省赛试题 7】牌型种数 - i 逆天耗子 - CSDN 博客
菜了菜了,简单DFS不会写 本文由 简悦 SimpRead 转码, 原文地址 https://blog.csdn.net/qq_34594236/article/details/60145501 版权 ...
- 牌型种数【蓝桥杯真题】
牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得 ...
- 2015蓝桥杯省赛---java---B---7(牌型种数)
题目 牌型种数 思路分析 递归进行实现,弄好终止条件,牌的数目等于13 代码实现 package com.atguigu.lanqiao;public class Main { // 简单枚举priv ...
- 2015蓝桥杯C++A:牌型种数(分配问题)
六.题目:牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不 ...
- Java算法学习:蓝桥杯——地宫寻宝(DFS+动态规划—记忆型递归)
Java算法学习:蓝桥杯--地宫寻宝(DFS✖记忆型递归) 题目: 标题:地宫取宝X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出 ...
- 【蓝桥杯 数独填数 DFS】
蓝桥杯 数独填数 DFS 题目描述 代码 题目描述 你一定听说过"数独"游戏.如[图1.png],玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列 ...
- 牌型种数 ----蓝桥杯(暴力方法)
蓝桥杯的纸牌游戏,这里我只用了简单的暴力,很费事,其实可以用递归, DP等等来写. 原题: 小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张 ...
最新文章
- 2022-2028年中国电竞椅行业市场行情监测及未来发展前景研究报告
- MindSpore技术理解(下)
- ffmpeg + opencv 把摄像头画面保存为mp4文件
- 网站服务器令牌获取,adobe - 获取Adobe Sign访问令牌以进行服务器到服务器身份验证 - 堆栈内存溢出...
- SQL基础面试题(五)
- 语言翻译成汇编语言_编程语言分类
- 千入坑坑之安装matlab,114错误,几种系统报错解决
- Java课设——文本编辑器
- AirPlay to Mac 如何工作以及使用它需要什么?
- 【周五松土】私家萝卜与坑
- php域名查询,域名查询 PHP 代码
- 一个好中医就是一座全科医院
- 如何使用 哑节点(dummy node),高效解决问题
- JAVA调用IBM的Lotus Notes
- 人月神话(二)——为什么巴比伦塔会失败
- Hdu2104(主席树)
- Unity将当前场景渲染到图片上并导出图片(本地/服务器)
- 3dMax教程网站 文字版
- CTFSHOW新手杯MISC部分WriteUp
- ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测