滿足條件的正整數序列

2021-10-04 07:04:51 字數 1006 閱讀 2573

問題描述

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

第一項為 n;

第二項不超過 n;

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

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

輸入格式

​ 每一行包含乙個整數n。

輸出格式

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

樣例輸入

​ 4樣例輸出

​ 7樣例說明

​ 以下是滿足條件的序列:

​ 4 1

​ 4 1 1

​ 4 1 2

​ 4 2

​ 4 2 1

​ 4 3

​ 4 4

評測用例規模與約定

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

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

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

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

深度搜尋(不推薦,時間過長)

思路,由於前兩項和後面幾項的規則不同,可以將前兩項分開考慮,現將數列的前兩位填數,計數器加一,後對數列的第三位開始搜尋,由於數列的長度是不一定的(4 1 1 和 4 1 都可以),所以判斷條件,如果滿足當前項小於前兩項的差的絕對值,計數器就加一,如果前兩項的差為0或一,表示當前數列已達到最長長度,(如4 1 1 (4 1並不是最長的長度)),返回

#include #include #include #include using namespace std;

long long vec[2000];

long long sum=0;

int n;

void dfs(int m, int step)//step表示當前屬於數列的第幾項

}}int main(void)

cout << sum%10000 <}

python 尋找最小正整數N,滿足某個條件

找出具有下列各性質的最小正整數 n 它的最後一位數字是6,如果把最後的6去掉並放在最前面所得到的數是原來數的4倍。coding utf8 第一種是網上的一種暴力解法 每次加10,然後判斷是否符合條件 print this is console module from itertools import...

滿足條件的01序列

題目連線 給定n個0和n個1,它們將按照某種順序排成長度為2n的序列,求它們能排列成的所有序列中,能夠滿足任意字首序列中0的個數都不少於1的個數的序列有多少個。輸出的答案對1e9 7取模。輸入格式 共一行,包含整數n。輸出格式 共一行,包含乙個整數,表示答案。資料範圍 1 n 1e5 輸入樣例 3輸...

和為s的正整數序列

from typing import list deffindcontinuoussequence target int list list int i 1 滑動視窗的左邊界 j 1 滑動視窗的右邊界 sum 0 滑動視窗中數字的和 res while i target 2 ifsum target...