以前我一直不知道怎麼寫這道題,現在明白了;
其實可以這樣考慮,比如: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 說明 提示 對...