動態規劃 上樓梯高階版

2021-09-25 01:07:29 字數 1139 閱讀 9439

d:上樓梯

檢視 提交 統計 提問

總時間限制: 1000ms 記憶體限制: 128kb

描述

小s在玩乙個叫上樓梯的遊戲。樓梯一共有n層台階。

因為腿長的限制,小s每次最多只能上k層台階。

小s是乙個迷信的人,所以他不希望自己某一步走的步數的數字裡有"4",(比如4,14,44都含有數字"4")。

現在,小s想要知道,有多少種走完這n層台階的方案?

輸入

輸入包含多組資料。

每組資料第一行輸入乙個整數 n, k(1 <= k <= n <= 50)。

輸入以 n,k=0 結束。

輸出

對於每組資料,輸出一行乙個整數,表示答案。

樣例輸入

10 1

10 2

18 8

0 0樣例輸出189

71262

提示

注意答案可能超過 int 所能表示的範圍,請謹慎選擇儲存答案以及中間資料的資料型別。

#include

#include

#include

using

namespace std;

const

int maxn =60;

typedef

long

long ll;

ll dp[maxn]

;ll search

(int n,

int k)

dp[0]

=1; dp[1]

=1;for

(int i =

2; i <= n; i++)}

}return dp[n];}

intmain()

memset

(dp,0,

sizeof

(dp));

cout <<

search

(n, k)

<< endl;

}return0;

}

上樓梯 動態規劃

題目 題目描述 有個小孩正在上樓梯,樓梯有n階台階,小孩一次可以上1階 2階 3階。請實現乙個方法,計算小孩有多少種上樓的方式。為了防止溢位,請將結果mod 1000000007 給定乙個正整數int n,請返回乙個數,代表上樓的方式數。保證n小於等於100000。測試樣例 返回 1 解題思路 這題...

上樓梯 動態規劃

題目 題目描述 有個小孩正在上樓梯,樓梯有n階台階,小孩一次可以上1階 2階 3階。請實現乙個方法,計算小孩有多少種上樓的方式。為了防止溢位,請將結果mod 1000000007 給定乙個正整數int n,請返回乙個數,代表上樓的方式數。保證n小於等於100000。測試樣例 返回 1 解題思路 這題...

動態規劃走樓梯

main.cpp 動態規劃走樓梯 created by liujan on 11 18 14.問題描述 乙個樓梯有20級,每次走1級或2級,從底走到 頂一共有多少種走法?分析 假設從底走到第n級的走法有f n 種,走到第n級 有兩個方法,乙個是從第 n 1 級走1步,另乙個是從第 n 2 級走2步,...