1. 程式人生 > >P1192 臺階問題

P1192 臺階問題

題目描述

NN級的臺階,你一開始在底部,每次可以向上邁最多KK級臺階(最少11級),問到達第NN級臺階有多少種不同方式。

輸入輸出格式

輸入格式:

 

兩個正整數N,K。

 

輸出格式:

 

一個正整數,為不同方式數,由於答案可能很大,你需要輸出ans \bmod 100003ansmod100003後的結果。

 

輸入輸出樣例

輸入樣例#1:  複製
5 2
輸出樣例#1:  複製
8

說明

對於20\%20%的資料,有N ≤ 10, K ≤ 3N10,K3;

對於40\%40%的資料,有N ≤ 1000N1000;

對於100\%100%的資料,有N ≤ 100000,K ≤ 100N100000,K100。

#include<stdio.h>
#include<string.h>
#define MAX 100010
int main()
{
    int n, k, i, j, s[MAX];
    memset(s, 0, sizeof(s));
    scanf("%d %d", &n, &k);
    s[0] = 1;
    for(i = 1; i <= n; ++i)
    {
        for(j = 1; j <= k; ++j)
        {
            if(i >= j)
            {
                s[i] = s[i] + s[i - j];
                s[i] = s[i] % 100003;
            }
        }
    }
    printf("%d\n", s[n]);
    return 0;
}