【YbtOJ树形DP-2】结点覆盖

该博客介绍了一种树形动态规划(DP)的解题策略,用于解决覆盖有根树节点的问题。博主详细阐述了如何从深度较深的节点开始,考虑节点由父亲、儿子或自身标记的情况,并提供了样例输入、输出及思路解析。通过分析每个节点的三种可能状态,博主给出了确定最优策略的代码实现。
摘要由CSDN通过智能技术生成

链接

YbtOJ

题目描述

给出一棵有根树,要求选出一些结点。若选中某个结点,则它本身、它的父亲结点和儿子结点被覆盖。选出第i个结点需要一定的花费ki ,求覆盖这棵树所需的最小花费。

样例输入

6
1 30 3 2 3 4
2 16 2 5 6
3 5 0
4 4 0
5 11 0
6 5 0

样例输出

25

思路

从深度深的地方往深度浅的地方搞
对于一个点x,我们分别处理它由父亲,儿子,自己标记的情况
f x , 0 + = m i n ( f s o n , 1 , f s o n , 2 ) f_{x,0} += min(f_{son,1},f_{son,2}) fx,0+=min(fson,1,fson,2)
f x , 1 + = m i n ( f s o n , 1 , f s o n , 2 ) + m i n ( f s o n , 2 − m i n ( f s o n , 1 , f s o n , 2 ) ) f_{x,1} += min(f_{son,1},f_{son,2}) + min(f_{son,2}-min(f_{son,1},f_{son

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值