[蓝桥杯2015初赛]牌型种数

发布时间 2023-03-22 21:08:58作者: 96痴呆敲码
这方法不能叫dps吧,只能说是递归?偷懒懒得想名字了(csdn博客https://blog.csdn.net/weixin_75172140)
#include <bits/stdc++.h>
using namespace std;
int ans = 0; //种类//
 
void dps(int n, int s, int num) { //当前牌点数,拥有该点数牌数目,拥有手牌数//
    if (n == 14 || s == 5)//点数或该点数手牌超过范围,返回,退!退!退!//
        return;
    else if (num == 13) {//手牌已经有13张了,种类加一,然后退!退!退!//
        ans++;
        return;
    } else {//要么继续添加上一张手牌一样的牌,要么手牌点数加1//
        dps(n, s + 1, num + 1);
        dps(n + 1, 0, num);
    }
}
 
int main() {
    dps(1, 0, 0);
    cout << ans;
}