HDU - Fibonacci Tree


Problem in short: 

Given some black and white edge, you need to check if there exists a spanning tree where the number of the white nodes is a Fibonacci number.

Idea: 

Count the number of maximum needed white edge to form a spanning tree. Let it be need_mx.
Count the number of minimum needed white edge to form a spanning tree. Let it be need_mn.

If there exists a Fibonacci number between [need_mn, need_mx] then there exists a spanning tree where the number of the white nodes is a Fibonacci number.

Check if the graph is connected or not.

To get  need_mx we first consider all edges with white color. And for need_mn first consider all edge with black color. We can do this easily with Kruskal's algorithm.

Code



Comments

Popular posts from this blog

My Programming Contest And Problem Solving Profiles