題目描述
有n級的台階,你一開始在底部,每次可以向上邁最多k級台階(最少1級),問到達第n級台階有多少種不同方式。
輸入輸出格式
輸入格式:
兩個正整數n,k。
輸出格式:
乙個正整數,為不同方式數,由於答案可能很大,你需要輸出ans mod 100003後的結果。
輸入輸出樣例
輸入樣例#1:
5 2輸出樣例#1:
8說明
時空限制: 1000ms/128mb
對於20%的資料,有n ≤ 10, k ≤ 3
對於40%的資料,有n ≤ 1000
對於100%的資料,有n ≤ 100000,k ≤ 100
思路:
1、之前做過k==2的台階問題,狀態轉移方程是f[i]=f[i-1]+f[i-2],這題規律也一樣。
2、第0階台階就有1種方法可到達,第n階的走法就是從n-k階到n-1階的走法之和。
3、注意每次求出來的數都要求模,否則資料有可能太大導致陣列溢位。
**如下:
#include
#include
#include
#include
using namespace std;
int f[
1000010]=
;//陣列初始化為0
intmain()
printf
("%d"
,f[n]);
return0;
}
洛谷 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 就可以直接通過上面...