P1192 台階問題 動態規劃 遞推

2022-05-19 02:23:38 字數 685 閱讀 4874

有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。

#include using namespace std;

int n, k;

int f[100001];

int min(int a, int b)

int main()

if (f[i] > 100003)

f[i] %= 100003;

} cout << f[n] << endl;

return 0;

}

坑:對f[i]取模,因為是加法所以沒有影響。

內層迴圈應該用逆序,因為f[i]應該由f[i-1]推出,如果用順序迴圈,邏輯順序不對就推不出來。見鏈結

可以把[1, k]和(k, 正無窮)的情況合成j = min(i, k); j--來考慮。

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 說明 提示 對...