HZOJ 斐波那契 fibonacci

2022-03-27 16:09:34 字數 937 閱讀 9035

先說乙個規律:

如圖將每個月出生的兔子的編號寫出來,可以發現乙隻兔子在哪一列他的父親就是誰。

每列的首項可以通過菲波那契求得。

然後你就可以像我一樣通過這個規律打表每個點的父親,預處理出倍增陣列,倍增求lca,省掉了建樹。期望得分70,實際得分50。

但是其實這已經很接近正解了:對於點i,那麼fa[i]+(i所在行首項)-1=i,移項,首項可以二分求得,就可以用olog60的複雜度找到乙個點的父親節點,所以對於每次詢問暴力求就行了。

1 #include2 #include3 #include4

#define ll long long

5#define int ll

6using

namespace

std;

7int f[70];8

intn;

9 inline int

read()

1014

return

s;15}16

signed main()

1730

inti;

31 i=upper_bound(f+1,f+65,a)-f;i--;

32int fa=a-f[i]+1

;33 i=upper_bound(f+1,f+65,b)-f;i--;

34int fb=b-f[i]+1;35

if(fafb;

36else

if(fbfa;

37else 38}

39 printf("

%lld\n

",a);40}

41 }

view code

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契堆

以下是實現的程式 肯定可以再優化的。include include include include using namespace std class node delete m child m child null class fibonacciheap node insert int key v...