【题解】BZOJ 4033 [HAOI2015]树上染色

这篇博客介绍了如何使用树形动态规划解决BZOJ 4033 [HAOI2015]树上染色问题。通过分析黑点和白点两两之间的距离贡献,定义状态d(i, j)表示以i为根的子树中有j个黑点能产生的最大贡献,利用DFS边预处理边跑DP,最终得到最大收益。" 128527614,15204504,土壤水分传感器:工作原理与应用,"['物联网技术', '环境监测', '农业技术', '传感器技术', '数据采集']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description D e s c r i p t i o n

传送门

有一棵点数为 N N 的树,树边有边权。给你一个在 0 ~ N N 之内的正整数 K ,你要在这棵树中选择 K K 个点,将其染成黑色,并将其他的 N K 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。

问收益最大值是多少。

Solution S o l u t i o n

树形DP是很好看出来的。

但是确定状态并不是那么简单的事情了。

我们先考虑形如 <u,v,w> < u , v , w > <script type="math/tex" id="MathJax-Element-51"> </script> 的边能够产生什么贡献吧。

题目中描述,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。那么在 u u 的左侧(很抽象的一个说法,就理解成把这条边摆中间,与 u 相连的那一部分都摆在左边,把与 v v 相连的都摆在右边,很明显,这两个部分是没有交集的)的黑点(白点同理)和

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值