有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。

来源:互联网 发布:电脑没有usb打印端口 编辑:程序博客网 时间:2024/04/27 23:03
有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 100000 + 10;int dp[maxn];void solve(){    int n,k;    scanf("%d%d",&n,&k);    for(int i =1;i<=k;i++) dp[i] = 1;    for(int i = 2;i<=n;i++)    {        for(int j = 1;j<=k&&j<=i;j++)        {            dp[i] = (dp[i]+dp[i-j])%100003;        }    }    printf("%d\n",dp[n]);}int main(){    solve();    return 0;}
0 0
原创粉丝点击