您的位置:首页 > 其它

蓝桥 牌型总数 dfs(暴力)

2018-02-24 16:51 239 查看
题目:

牌型种数:

小明被劫持到X赌城,被迫与其他3人玩牌。 

一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 

这时,小明脑子里突然冒出一个问题: 

如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

方法一:直接写13重循环得结果。

方法二:dfs

#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1e5+50;
int ans;

void dfs(int type,int n){///type 为牌得点数(即种类),n为手上现在一共有多少张牌
if(n>13) return;
if(type==13){///需要给type一个递归出口
if(n==13) ans++;
return;
}
for(int i=0;i<=4;i++)///枚举每种牌拿的张数
dfs(type+1,n+i);
}

int main(){
ans=0;
dfs(0,0);
printf("%d\n",ans);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: