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

利用dfs,找到一个路径长度为13的路。

 同时还要注意k,用来控制走了几次,走了13次

#include <iostream>
#include <cstdio>

using namespace std;

long long ans; 
// cnt 计算已经拿取的张数
// k就是控制递归时,控制一直取0(也就是不拿)的情况 
void dfs(int cnt, int k) {
    if (cnt == 13) ans++;
    if (cnt >= 13 || k >= 13) return;
    
    for (int i = 0; i <= 4; i++)
        dfs(cnt+i, k+1);
}

int main( ) {
    ans = 0;
    // 初始化张数为0,拿的次数初始为0 
    dfs(0, 0);
    cout << ans << endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/h694879357/p/12236109.html