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