這是一道好題。
首先,我們先將兔子分組。⎧⎩
⎨⎪⎪⎪
⎪⎪⎪⎪
⎪⎪⎪⎪
⎪⎪⎪1
234,
56,7
,89,
10,11,
12,13
就是按出生時間分組,記ri
,j表示第
i 月第
j只出生的兔子,fk
表示第k 只兔子的父親,fe
bi=i
>
2也就是斐波那契數列。
我們易得* r
i,1=
febi
+1(i
>
1 ) * f
k=k−
maxfeb
i=1fe
bi
證明:證明:這題就是這尿性啊,看圖就明白了。
證明:感覺沒好說的啊,斐波那契數列性質
然後結合那兩個式子(相加),就是了啊(霧)。
然後,就是跑以下lca就好了。
分析一下複雜度吧。
期望:o(m
log2
max while(c>='0'&&c<='9')
return r*t;
}long
long f[100];
long
long del(long
long k)
return k-f[l-1];
}int t;
int main()
printf("%lld\n",a);
}return
0;}
luogu P3938 斐波那契 數學
luogu p3938 斐波那契 題目描述 小 c 養了一些很可愛的兔子。有一天,小 c 突然發現兔子們都是嚴格按照偉大的數學家斐波那契提出的模型來進行 繁衍 一對兔子從出生後第二個月起,每個月剛開始的時候都會產下一對小兔子。我們假定,在整個過程中兔子不會出現任何意外。小 c 把兔子按出生順序,把兔...
P3938 斐波那契
腦子還真的是好東西,自己太笨了 容易發現父親節點和兒子節點的關係 兒子節點大於父親節點 兒子節點和父親節點之差為斐波那契數,且斐波那契數為小於兒子節點的最大的乙個 1e12中有60左右的斐波那契數,打出表來查詢就好了,深度不超過60 include include include include i...
P3938 斐波那契
坑爹入口 我們想一下,第幾個生的。那他的孩子就是排在新一波出生的第幾個上的。然後我們通過瞎試得到。10 12 斐波那契的第60項。就是說我們不用建圖 也建不下 每次最多60次暴力就可以了。出題人真是個人才。include include includeusing namespace std long...