1 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N = 100003; int main() { int n, k; cin >> n >> k; int dp[n + 1]; // 数组大小改为 n+1 memset(dp, 0, sizeof(dp)); dp[0] = 1; // 从第 0 级台阶到第 0 级台阶有一种走法 dp[1] = 1; // 从第 0 级台阶到第 1 级台阶有一种走法 for (int i = 2; i <= n; i++) { // 从第 2 级台阶开始计算 int j = min(i, k); // 每次最多走 k 步 while (j > 0) { dp[i] = (dp[i] + dp[i - j]) % N; // 累加走法数 j--; } } cout << dp[n] << endl; // 输出结果 return 0; }
- 1
信息
- ID
- 5250
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 74
- 已通过
- 26
- 上传者