洛谷P1192 台階問題

2021-09-26 10:44:19 字數 526 閱讀 6586

設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 ...