UESTC 菲波拉契數制

2021-07-02 14:52:52 字數 589 閱讀 2806

一維的01揹包

#include #include #include #include #include #include #include #include #include #define fop freopen("in","r",stdin)

#define inf 0x3f3f3f3f

#define ll __int64

#define eps 1e-8

using namespace std;

const int n = 100010;

int dp[n];

int fib[50];

int cnt;

void init()

}void pack()

}}int main()

return 0;

}

dp[0] = 1這一步很妙,有了這一步可以簡單的初始化dp陣列所有元素為0,不用考慮兩個加數是否都是fib數

原因如下,因為列舉的是fib陣列,所以其中乙個數肯定是fib數,而另乙個數是不是fib數都無關緊要,我們只關心這個j-fib[i]拆成fib數一共有幾種表達方法

UESTC1133 菲波拉契數制 01揹包思想

description 我們定義如下數列為菲波拉契數列 f 1 1 f 2 2 f i f i 1 f i 2 i 3 給定任意乙個數,我們可以把它表示成若干互不相同的菲波拉契數之和。比如13 有三種表示法13 13 13 5 813 2 3 8 現在給你乙個數n 請輸出把它表示成若干互不相同的菲波...

dp uestc L 菲波拉契數制公升級版

資料很大,以揹包的思路陣列開不下。先定序地考慮乙個菲波拉契數如fib i 的表示法,假設i比較大,由菲波拉契數的定義可知道fib i fib i 1 fib i 2 要找到其它表示就繼續拆分fib i 1 或fib i 2 假如拆分fib i 1 得到fib i 2 fib i 2 fib i 3 ...

菲波那契數列

菲波那契數列是指這樣的數列 數列的第乙個和第二個數都為1,接下來每個數都等於前面2個數之和。給出乙個正整數k,要求菲波那契數列中第k個數是多少。1 遞迴演算法 include define m 99 int main scanf d k for i 2 i k 1 i printf d n a k ...