有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 後的結果。輸...