P8294 [省选联考 2022] 最大权独立集问题

本文介绍了如何解决最大权独立集问题,特别是对于二叉树的特殊情况。通过树形动态规划(DP)策略,分析不同点的移动情况,并根据点的度数进行状态转移,达到优化时间复杂度的目的,最终实现O(n^2)的时间复杂度解决方案。
摘要由CSDN通过智能技术生成

题目大意

给出一个二叉树,每个点有点权 d i d_i di,按顺序切断它的 n − 1 n−1 n1条边,代价是边所连的两个点的权值和,且断边之后两点会交换权值,你的目的是最小化权值和。
n ≤ 5 e 3 n\le5e3 n5e3

solution

实乃毒瘤 d p dp dp
很容易想到树形 d p dp dp,但是发现很难设置状态,题目中有一个重要条件,该树是棵二叉树,不妨先观察不同情况的不同短边顺序的点的移动情况
在这里插入图片描述在这里插入图片描述
不难发现无论是什么情况,当且仅当一个点经过父边从子树外进来到位置 v v v,一个点 u u u经过父边从子树内出去,且它们的 l c a lca lca r r r,即当前讨论的点
所以可以设出状态 f u , v , r = l c a ( u , v ) f_{u,v},r=lca(u,v) fu,v,r=lca(u,v)表示 r r r子树内和 r r r到父亲的边被断, u u u点被移出去,一个点被移到 v v v的最小代价,由于还不知道移进来的是哪个点,所以这个最小代价并不算移进来的点的代价,移进来的点将会在之后的转移中被确定并且代价会被计算

设儿子个数为 d e g r deg_r degr,深度为 d e p u dep_u depu,儿子为 l s u , r s u ls_u,rs_u lsu,rsu

d e g r = 0 deg_r=0 degr=0

显然只有 f r , r = d r f_{r,r}=d_r fr,r=dr

d e g r = 1 deg_r=1 degr=1

观察前面的图不难发现要么 u = r u=r u=r,要么 v = r v=r v=r

u = r u=r u=r

f u , v = min ⁡ { f i , v + d u } , l c a ( i , v ) = l s u f_{u,v}=\min\{f_{i,v}+d_u\},lca(i,v)=ls_u fu,v=min{ fi,v+d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值