树形DP——POJ1947 and POJ2486

本文介绍了如何使用树形动态规划(DP)解决POJ1947和POJ2486两道题目。在POJ1947中,状态dp[i][p]表示以节点i为根的树,持有p个节点需要摧毁的最少公路数量,通过状态转移方程进行求解。而在POJ2486中,dp[i][k][0]和dp[i][k][1]分别表示女主角在有限步数内返回节点i或停留在子树中能吃到的最大苹果数,通过三种状态转移方程进行优化计算。
摘要由CSDN通过智能技术生成
本文针对POJ上的2057 、1947 、2486 、3140 四道题目,谈一下个人对树形DP的理解,上面4题无法覆盖树形DP的所有形式,但也有一定的针对性,值得去做一做,思考一下:
树形DP中常常用到“背包思想”,1947和2486就是利用了“背包思想”,状态想好了,最后就是在填“背包”,某个节点的“背包”是用他们的子树的状态进行填充的。
  • POJ1947:状态dp[i][p]表示以节点i为根的树,持有p个节点需要摧毁的最少的公路,状态转移方程大体可以写为dp[i][p]=Min{dp[i][p],{dp[i][p-k]+dp[j][k]|j is a child of i}}
  • POJ2486:状态dp[i][k][0]表示有k步可以走的情况下,女主角回到i节点吃到的最大苹果数;dp[i][k][1]表示有k步可以周的情况下,女主角不一定回到i(可能在i的子树中停止)吃到的最大苹果数。状态转移方程大体可以写为三个(1)dp[i][k][0]=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值