設a[i]為走到第i階的方法數
假設最多可以走k步,對任意x(x>=k)容易知道
1.a[x]=a[x-1]+a[x-2]+…+a[x-k]
2.a[x+1]=a[x]+a[x-1]+a[x-2]+…+a[x+1-k]=2*a[x]-a[x-k]
所以我們只需要先求出a[1]a[k]然後剩下的a[k+1]a[n]就可以直接通過上面的2式通過一次運算直接算出了 因為當資料比較大的時候k《至於a[1]~a[k]可以用一下方法求出
void
init()
//實際上對於a[1]~a[k],a[i](1<=i<=k)為2的(i-1)次方
//至於為什麼大家可以根據我上面的init()函式帶入幾個k寫一寫很容易就懂了
以下是完整**
#include
int n,k,a[
100005];
void
init()
intmain()
洛谷 P1192 台階問題
題目描述 有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級台階有多少種不同方式。輸入輸出格式 輸入格式 輸入檔案的僅包含兩個正整數n,k。輸出格式 輸入檔案stair.out僅包括1個正整數,為不同方式數,由於答案可能很大,你需要輸出mod 100003後的結果。輸入...
洛谷 P1192 台階問題
有 n n 級的台階,你一開始在底部,每次可以向上邁最多 k k 級台階 最少 1 1 級 問到達第 n n 級台階有多少種不同方式。輸入格式 兩個正整數n,k。輸出格式 乙個正整數,為不同方式數,由於答案可能很大,你需要輸出 ans bmod 100003an smod10 0003 後的結果。輸...
洛谷 P1192 台階問題
有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級台階有多少種不同方式。輸入格式 輸入檔案的僅包含兩個正整數n,k。輸出格式 輸入檔案stair.out僅包括1個正整數,為不同方式數,由於答案可能很大,你需要輸出mod 100003後的結果。輸入樣例 1 複製 5 2 ...