洛谷P1192-台阶问题(线性递推 扩展斐波那契)
占坑
先贴上AC代码 回头来补坑
#include <iostream>
using namespace std;
int n, k;
const int mod = 100003;
long long f[1000000];
int main()
{
cin >> n >> k;
f[0] = 1;
for (int i = 1; i <= n; i++) {
if (i <= k) {
//当 当前阶梯 小于一次性可以跨越的阶梯的时候
for (int j = 0; j < i; j++) {
f[i] += f[j]; f[i] %= mod;
}
}
if (i > k) {//扩展 n 级斐波那契 从当前位置的前k个相加
for (int j = i - 1,tmp = k; tmp > 0; j--, tmp--) {
f[i] += f[j]; f[i] %= mod;
}
}
}
cout << f[n] << endl;
system("pause");
return 0;
}