HDU 5290 Bombing plan 树形dp

题目链接

题意
给定n个点的树,每个点有一个点权wi, 每次选一个点u,则树上u和距离u wi范围内的所有点都会被染色。
问:最少选几个点使得n个点都被染色。
思路:树形dp
对于某个点u
down[u][j] 表示u以及u向下深度为 j 的点没有被染色的最小花费。
up[u][j] 表示u以及u向上距离为j的点已经被染色的最小花费。
设u点的儿子们为v, v2, v3 ···,每个点点权为w[]数组
3种转移:
1、对于down[u][i] 显然就是子树的down数组求和,特殊一点就是down[u][0](含义为u的子树中 除了u没有被染色,别的点都染色的最小花费,所以是sigma(up[v][0]) )
2、如果选u点,则显然答案为 1 + sigma(down[v][ w[u]-1 ]) ,更新给up[u][w[u]]
3、如果不选u点,则从某个儿子的up数组更新过来答案为 up[v][j] + (down[u][ j-1 ]-down[v][j-2])
最后保持up 和 down的单调性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值