HDU 4786 斐波那契生成樹

2022-03-21 02:35:05 字數 1171 閱讀 4196

這道題的意思是給你一些邊, 某些邊被染成黑色, 還有一些邊被染成白色, 現在問你沒有乙個生成樹他的白邊的數量是斐波那契數列中的數, 我們可以先選黑邊得到最最小的白邊數, 先選白邊得到最大的白邊數, 然後看看這個區間有沒有斐波那契數即可, 注意沒有生成樹時的情況。。 **如下:

#include #include 

#include

using

namespace

std;

intn, m;

struct edge e[100000 + 100

];int

ne;bool whitefirst(const edge &a, const edge &b)

bool blackfirst(const edge&a, const edge&b)

int par[100000+100

];void init(int

n)int find(int

x)int

kruskal()

if(m == n-1) break

; }

if(m != n-1) num = -1

;

return

num;

}int fib[100

];int

main()

; }

sort(e, e+ne, whitefirst);

int num =kruskal();

sort(e, e+ne, blackfirst);

int num2 =kruskal();

if(num==-1 || num2==-1

)

bool flog = false

;

for(int i=0; i<=30&&!flog; i++)

if(fib[i]>=num2 && fib[i]<=num) flog=true

;

if(flog)

printf(

"case #%d: yes\n

", ++kase);

else

printf(

"case #%d: no\n

", ++kase);

}return0;

}

最小生成樹 Hdu4786

hdu4786 最小生成樹的變形題,求一遍最小,求一遍最大,在從此區間是否含有斐波那契數,別忘了並查集,因為可能不連通。後來想其實不難,場上出不來的原還是對最小生成數不熟練,基礎薄弱。includeusing namespace std int par 100100 int rank 101000 ...

hdu4099 斐波那契數 字典樹

題意 給出乙個數字n,在斐波那契數列中找到乙個最小下標,滿足這個斐波那契數是以n為字首,輸出這個下標。思路 高精度 字典樹 1000000000000000進製。後來知道在斐波那契數很大的時候,只取前60位相加得到的前40位就是原斐波那契數的前40位。include include include ...

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

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