hdu4786 Fibonacci Tree(最小生成树+最大生成树+01树+理解)

该博客探讨了如何在只有0和1权值的边中构建生成树,并确保白色边的数量对应于Fibonacci数。通过分析最小生成树(MST)和最大生成树(MBT),作者提出了‘可置换点’的概念,解释了为何在MST和MBT之间的所有权值都能被覆盖。关键在于,通过改变可置换点的边选择,可以从MST转换到MBT,增加权值。若边的权值不是0和1,情况将变得更复杂。博客建议使用Kruskal算法解决此类问题。
摘要由CSDN通过智能技术生成


http://acm.hdu.edu.cn/showproblem.php?pid=4786

题意:有n个节点,给你一些白边和黑边,问能否用两色边构造出一棵生成树,且树中白色边的数量为一个Fibonacci数?


思路:自己对生成树的理解不够,没能做出此题。打从一开始就没想到最小生成树到最大生成树权值和之间的权值都可以达到,感觉没道理啊,于是也就不会有判断斐波那契的思路了。

总体思路是这样,问你是否可以构造出一棵生成树满足权值条件,首先要清楚这个权值的范围。由于只有权值为0和1的边,那么这里的范围就是最小生成树的权值到最大生成树的权值了。最小生成树以0边(黑边)优先,最大生成树以1边(白边)优先。


于是这里就有一个最大的问题:所有在min和max之间的白边数我们都能够达到。看了这位的博客,没看懂,想用自己的方式解释下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值