P1192 台階問題(dp 遞推式)

2021-10-02 14:46:21 字數 701 閱讀 4319

以前我一直不知道怎麼寫這道題,現在明白了;

其實可以這樣考慮,比如:k=2如果我在第i個階梯上面,那麼我的上乙個階梯就只能是i-1,i-2這兩個階梯,所以方案總數就應該是f[i]=f[i-1]+f[i-2];f[i]這裡代表到達i階梯的方案總數;所以按照這個思路我們就可以推出這個乙個公式:

f[i]=f[i-1]+f[i-2]+f[i-3]+…+f[i-k];

所以整合一下就應該是這種:

我這裡i>=1的哈,因為f[0]=1,因為站在原地本身就是一種;

與其說這道題是dp,其實我感覺dp也就是去找遞推式,只不過複雜的dp可就沒那麼容易了;

ac**:

#include

using

namespace std;

#define mod 100003

int f[

100050];

intmain()

}printf

("%d\n"

,f[n]

%mod)

;return0;

}

P1192 台階問題 遞推

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

P1192 台階問題(遞推)

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

P1192 台階問題

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