http://acm.hdu.edu.cn/showproblem.php?pid=4786
题意:有n个节点,给你一些白边和黑边,问能否用两色边构造出一棵生成树,且树中白色边的数量为一个Fibonacci数?
思路:自己对生成树的理解不够,没能做出此题。打从一开始就没想到最小生成树到最大生成树权值和之间的权值都可以达到,感觉没道理啊,于是也就不会有判断斐波那契的思路了。
总体思路是这样,问你是否可以构造出一棵生成树满足权值条件,首先要清楚这个权值的范围。由于只有权值为0和1的边,那么这里的范围就是最小生成树的权值到最大生成树的权值了。最小生成树以0边(黑边)优先,最大生成树以1边(白边)优先。
于是这里就有一个最大的问题:所有在min和max之间的白边数我们都能够达到。看了这位的博客,没看懂,想用自己的方式解释下。