台階問題 洛谷 1192(遞推)

2021-09-20 15:34:14 字數 868 閱讀 5634

題目鏈結

時空限制 1000ms / 128mb

有n級的台階,你一開始在底部,每次可以向上邁最多k級台階(最少1級),問到達第n級台階有多少種不同方式。

輸入輸出格式

輸入格式:

兩個正整數n,k。

輸出格式:

乙個正整數,為不同方式數,由於答案可能很大,你需要輸出ans mod 100003後的結果。

輸入輸出樣例

輸入樣例#1:

5 2輸出樣例#1:8說明

對於20%的資料,有n ≤ 10, k ≤ 3;

對於40%的資料,有n ≤ 1000;

對於100%的資料,有n ≤ 100000,k ≤ 100;

對於熟悉的斐波那契數列我們知道這是二階台階的問題,但我們也能夠推出一般的情況.

f[n]=f[n-1]+f[n-2],這是k=2時的情況,即為到達n-1時的情況和n-2時的情況種數之和,因為之後他都能一步到達n階。那麼我們基本能夠推出一般情況了–對於能夠邁出k步的:

for

(int j=

1; j<=k; j++

)

以下是ac**:

#include

using namespace std;

const

int mod=

100003

;const

int mac=

1e5+10;

int dp[mac]

;int

main()

} printf (

"%d\n"

,dp[n]);

return0;

}

洛谷 1192 台階問題(遞推,DP)

有 n 級的台階,你一開始在底部,每次可以向上邁最多 k 級台階 最少 1 級 問到達第 n 級台階有多少種不同方式。輸入格式 兩個正整數n,k。輸出格式 乙個正整數,為不同方式數,由於答案可能很大,你需要輸出 ans mod 100003 後的結果。輸入樣例 1 5 2輸出樣例 1 8對於 20 ...

題目 洛谷1192 台階問題(遞推)

題目描述 有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級台階有多少種不同方式。輸入輸出格式 輸入格式 兩個正整數n,k。輸出格式 乙個正整數,為不同方式數,由於答案可能很大,你需要輸出ans mod 100003後的結果。思路 一開始想用深搜來做,每次從1到k步的迴...

遞推 洛谷 P1192 台階問題

題目描述有n 級的台階,你一開始在底部,每次可以向上邁最多 k級台階 最少 1級 問到達第 n級台階有多少種不同方式。輸入輸出格式 輸入格式 輸入檔案的僅包含兩個正整數n,k。輸出格式 輸入檔案 stair.out 僅包括1 個正整數,為不同方式數,由於答案可能很大,你需要輸出 mod 100003...