問題描述
小明想知道,滿足以下條件的正整數序列的數量:
第一項為 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...