台階 dp 斐波那契

2021-08-02 04:26:21 字數 938 閱讀 1730

在玩電腦遊戲「lucky luke」時,bom到達了乙個場景,lucky必須爬上乙個由n個台階組成的樓梯。

樓梯從下到上編號為1到n。 lucky可能會往上爬一步,或者可能一次跳兩步。 然而,一些台階被打破了,lucky不能站在上面。 一開始,lucky站在第一階(第一階永遠不會破)。

突然,bom想到了乙個問題:lucky爬樓梯到第n階樓梯有多少種方法?

bom需要你的幫助來回答這個問題。

第一行由兩個整數n和k組成;

n是樓梯的階數,k是破碎的階梯個數(0≤k<n≤100000)

第二行由k個整數組成,表示破碎的階梯的階數。

輸出的結果如題目描述,因為結果可能很大,所以最終輸出的結果對14062008取餘

4 2

2 390000 1

49000

列舉規律 發現是個斐波那契數列 dp

#include 

#include

#include

using

namespace

std;

typedef

long

long ll;

#define mod 14062008

int bad[100005];

ll dp[100005];

int main()

for (int i = 1; i < k; ++i)

dp[1]=1,dp[0]=0;

//i不能從3開始如果台階2壞了dp不到 而dp[2]初始1 所以初始應從1和0開始

for (int i = 2; i <= n; ++i)

}if (flag) printf("0\n");

else

printf("%lld\n",dp[n]);

return

0;}

超級台階 斐波那契類

小明在坐景馳科技研發的無人車到達了目的地。從無人車下來以後,小明看到了乙個長長的樓梯。有乙個n級台階的樓梯,小明一次可以向上跳1步,兩步,甚至是n步,請問小明跳到n級台階有多少種跳法?第一行輸入乙個整數t,代表有t組樣例 t 30 接下來的t行,都用乙個整數n,表示樓梯有n級台階 1 n 30 輸出...

斐波那契數列(跳台階)

題目1 斐波那契數列 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 斐波那契數列定義 1 1 2 3 5 8 13 21 34 我們最容易想到的是遞迴的方式,如下 public int fibonacci int n if n 1 re...

Python 台階問題 斐波那契

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。fib lambda n n if n 2 else fib n 1 fib n 2 第二種記憶方法 def memo func cache def wrap args if args not in cache...