问题描述
小明被劫持到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