小明想知道,滿足以下條件的正整數序列的數量:第一項為 n;
第二項不超過 n;
從第三項開始,每一項小於前兩項的差的絕對值。
請計算,對於給定的 n,有多少種滿足條件的序列。
【輸入格式】
輸入一行包含乙個整數 n。
【輸出格式】
輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的餘數。
【樣例輸入】
4【樣例輸出】
7【樣例說明】
以下是滿足條件的序列:41
4114
1242
4214
344【評測用例規模與約定】
對於 20
% 的評測用例,1
<= n <=
5;對於 50
% 的評測用例,1
<= n <=
10;對於 80
% 的評測用例,1
<= n <=
100;
對於所有評測用例,1
<= n <=
1000。
思路:記憶化遞迴從題目第三點可以得出遞迴公式:
f(old,now)的意思是:old為之前的元素,now為當前的元素的序列總和。
由此我們根據2,3條件得出:f(old,now)的序列總和 = 1 + f( old, now -1 ) + f( now, | old- now | - 1 );
由此得出**:
#include
#include
int hx[
1001][
1001]=
;long
long
intdfs
(int old,
int now )
intmain()
//從第三項開始,符合遞迴式:
//f(old,now) = f(now, 1) + .... + f(now,|old-now|-1) + 1;
// ★從1到old和now的絕對值-1 在加上自己
題記 序列計數 藍橋杯
問題描述 小明想知道,滿足以下條件的正整數序列的數量 1.第一項為 n 2.第二項不超過 n 3.從第三項開始,每一項小於前兩項的差的絕對值。請計算,對於給定的 n,有多少種滿足條件的序列。輸入格式 輸入一行包含乙個整數 n。輸出格式 輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的...
藍橋杯 序列計數 記憶化搜尋
問題描述 小明想知道,滿足以下條件的正整數序列的數量 1.第一項為 n 2.第二項不超過 n 3.從第三項開始,每一項小於前兩項的差的絕對值。請計算,對於給定的 n,有多少種滿足條件的序列。輸入格式 輸入一行包含乙個整數 n。輸出格式 輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的...
藍橋 序列計數
問題描述 小明想知道,滿足以下條件的正整數序列的數量 1.第一項為 n 2.第二項不超過 n 3.從第三項開始,每一項小於前兩項的差的絕對值。請計算,對於給定的 n,有多少種滿足條件的序列。輸入格式 輸入一行包含乙個整數 n。輸出格式 輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的...