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

2021-08-21 21:14:13 字數 1147 閱讀 5536

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

每次上台階時肯定都是一次走上去,那麼就看上次所在台階的位置。假如說一次上四個台階,上到第50層。那麼到第五十層的步數為在第49,48,47,46,45這些方案數相加。

寫乙個遞推關係就好了:a[n]=a[n-1]+a[n-2]+……+a[n-k] 。對於到達每一層都是這樣的方法,一直算下去就好了。注意要每次取模

#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define ms(a) memset(a,0,sizeof(a))

#define pi acos(-1.0)

#define inf 0x3f3f3f3f

const double e=exp(1);

const int maxn=1e6+10;

const int mod=100003;

using namespace std;

int a[maxn];

int main(int argc, char const *argv)

cout<

return 0;

}

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

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

遞推 洛谷 P1192 台階問題

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

洛谷 P1192 台階問題

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