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