每日一題 序列計數

2021-10-05 15:42:09 字數 1076 閱讀 1548

【問題描述】

小明想知道,滿足以下條件的正整數序列的數量:

第一項為 n;

第二項不超過 n;

從第三項開始,每一項小於前兩項的差的絕對值。

請計算,對於給定的 n,有多少種滿足條件的序列。

【輸入格式】

輸入一行包含乙個整數 n。

【輸出格式】

輸出乙個整數,表示答案。答案可能很大,請輸出答案除以10000的餘數。

【樣例輸入】

4【樣例輸出】

7【樣例說明】

以下是滿足條件的序列:

4 14 1 1

4 1 2

4 24 2 1

4 34 4

【評測用例規模與約定】

對於 20% 的評測用例,1 <= n <= 5;

對於 50% 的評測用例,1 <= n <= 10;

對於 80% 的評測用例,1 <= n <= 100;

對於所有評測用例,1 <= n <= 1000。

題解:記憶化遞迴的思路,考慮狀態的轉移:如果我們用f(i,j)表示前乙個數是i,當前數是1到j的合法序列的個數;有f(i,j) = 1 + f(i,j-1) + f(j,abs(i-j)-1)即分為兩個部分1)i作為前乙個數,從1到j-1為當前數的合法序列的個數已經計算好,2)求以j為尾數,後面選擇1到abs(i-j)-1的合法序列的個數。如 f(10,5)=f(10,4)+f(5,4);而不是列舉1到5;這樣每次解答樹只展開兩個節點,相當於減少一層迴圈,雖然解答樹的層次還是很深,但是由於記憶的存在,解空間仍然是n的平方。可在100ms內解決。

//#include

#include

#include

#define mod 10000

using

namespace std;

int n;

int m[

1005][

1005];

intdfs

(int pre,

int cur)

void

work()

intmain()

每日一題 統計數字

難度星級 2星 主要考察 排序 字典 這是一道簡單 相對於部分語言來說 的排序的題目,先來看題 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 某次科研調查時得到了n個自然數,每個數均不超過1500000000 ...

LeetCode 每日一題338 位元位計數

給定乙個非負整數num。對於0 i num範圍中的每個數字i,計算其二進位制數中的1的數目並將它們作為陣列返回。示例 1 輸入 2輸出 0 1,1 示例 2 輸入 5輸出 0 1,1 2,1,2 高階 要求演算法的空間複雜度為o n 你能進一步完善解法嗎?要求在c 或任何其他語言中不使用任何內建函式...

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...