洛谷 台階問題

2021-10-01 07:51:30 字數 1170 閱讀 5409

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

輸入格式

兩個正整數n,k。

輸出格式

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

輸入輸出樣例

輸入5 2輸出8

說明對於20%20%的資料,有n ≤ 10, k ≤ 3n≤10,k≤3;

對於40%40%的資料,有n ≤ 1000n≤1000;

對於100%100%的資料,有n ≤ 100000,k ≤ 100n≤100000,k≤100。

這一題走了好多彎路…

解題思路就是找數字之間的規律:

k=2 :1 23 5 8 13 21 34…

k=3 :1 2 47 13 24 44 81…

k=4 :1 2 4 815 29 56 108…

k=5 :1 2 4 8 1631 61 120…

這樣看下來是不是找到規律了?前k項是2的i-1次方

k後面的數字也很有規律,a[i]=2*a[i-1]-a[i-k-1]

總結一下錯誤的原因:複雜度高了?for套for,其實找到規律,就不會有這個錯了;第4個板塊不過?是因為是因為輸出時沒有對a[n]再次取模!;總是wa?是因為忘記取模了…

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const ll mod=

100003

;const ll maxn=

1e5+7;

ll a[maxn]

;int

main()

for(

int i=k+

1;i<=n;i++

) cout<<

(a[n]

+mod)

%mod

return0;

}

台階問題 洛谷 1192(遞推)

題目鏈結 時空限制 1000ms 128mb 有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級台階有多少種不同方式。輸入輸出格式 輸入格式 兩個正整數n,k。輸出格式 乙個正整數,為不同方式數,由於答案可能很大,你需要輸出ans mod 100003後的結果。輸入輸出...

洛谷 P1192 台階問題

題目描述 有n級的台階,你一開始在底部,每次可以向上邁最多k級台階 最少1級 問到達第n級台階有多少種不同方式。輸入輸出格式 輸入格式 輸入檔案的僅包含兩個正整數n,k。輸出格式 輸入檔案stair.out僅包括1個正整數,為不同方式數,由於答案可能很大,你需要輸出mod 100003後的結果。輸入...

洛谷 P1192 台階問題

有 n n 級的台階,你一開始在底部,每次可以向上邁最多 k k 級台階 最少 1 1 級 問到達第 n n 級台階有多少種不同方式。輸入格式 兩個正整數n,k。輸出格式 乙個正整數,為不同方式數,由於答案可能很大,你需要輸出 ans bmod 100003an smod10 0003 後的結果。輸...