poj 2486 树形dp

来源:互联网 发布:apache php cgi 配置 编辑:程序博客网 时间:2024/05/23 19:12

poj 2486

题意: 给一棵树,树上每个节点有个有k的苹果,这k个苹果

 

吃了后就没有了,走到一个节点都会全部吃完节点的苹果。

如果给定一定的步数,问你怎么走才能吃到最多的苹果?

 

 一道比较好的树形dp

我自己想到的地方对每个节点做背包,但是要考虑到有回路

 

的地方,那怎么处理走回来的情况呢?

开始的时候我是想到走回来的花费不就是走的路径*2吗?

结果怎么也不过

后来用测试数据调才发现,这个想法是错误的。

有回到原点的方法的花费不一定是走的路径的2倍。

因为可能多次走回这个节点。所以要另外再开一个数组,记

 

录走回到原点的花费k的步数的可以吃到的最多苹果。

另一维的dp的记录不走回到原点的花费k步的可以吃到的最多

 

苹果。

两个同时更新就可以得出结果。

原创粉丝点击