ConstStar
发布于 2023-01-25 / 103 阅读 / 0 评论 / 0 点赞

蓝桥杯2015年B组:牌型种数

问题描述

小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

数据范围

解决方案

思路

深度优先搜索

代码

#include <iostream>

using namespace std;

int dfs(int index, int ans) {
    if (ans > 13)
        return 0;

    if (index == 13) {
        return ans == 13;
    }

    int temp = 0;
    for (int i = 0; i <= 4; ++i) {
        temp += dfs(index + 1, ans + i);
    }
    return temp;
}

int main() {

    cout << dfs(0, 0);

    return 0;
}

输出

3598180

评论