在玩電腦遊戲「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...