1 条题解

  • 0
    @ 2025-2-27 14:45:00
    #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
    上传者