題目描述有n
級的台階,你一開始在底部,每次可以向上邁最多
k級台階(最少
1級),問到達第
n級台階有多少種不同方式。
輸入輸出格式
輸入格式:
輸入檔案的僅包含兩個正整數n,
k。輸出格式:
輸入檔案
stair.out
僅包括1
個正整數,為不同方式數,由於答案可能很大,你需要輸出
mod 100003
後的結果。
輸入輸出樣例
輸入樣例
#1:
複製5 2
輸出樣例
#1:複製8
說明
對於20%
的資料,
有n ≤ 10, k ≤ 3;
對於40%
的資料,有
n ≤ 1000;
對於100%
的資料,有
n ≤ 100000
,k ≤ 100
。題目分析:
遞推很經典的題目(但我感覺仍然是動態規劃),我們設
f[i]為到i
的路的種類,則我們只能由
f[i-k],f[i-k+1]…….f[i-1]
到達,k
為步數。
所以得到遞推式:
f[i]+=f[i-j](i-j>0,1<=j<=k)
邊界條件:
f[0]=1
實現**:
#include using namespace std;
int n,i,m,j;
int f[100005];
int main()
cout
}
洛谷 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 台階問題
設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 就可以直接通過上面...