CF1324F Maximum White Subtree 题解

这篇博客解析了CF1324F题目,介绍了如何利用树形动态规划解决寻找一棵树中,使得黑白节点数量差最小的子树问题。博主详细解释了dp状态转移方程,并给出了O(n)的时间复杂度和O(n)的空间复杂度的解决方案,最终获得了满分。
摘要由CSDN通过智能技术生成

博客园同步

原题链接

简要题意:

给定一棵树,每个点有黑白两种颜色;对每个节点,求出包含当前节点的连通图,使得白点数与黑点数差最小。输出这些值。

F题也这么简单,咳咳,要是我也熬夜打上那么一场。。。可惜没时间打啊

美国佬怎么想的,不能让比赛设置成美国的上午,那我们就是下午了;非要设置成下午,那我们就是半夜。。。

首先,这题一看就是 dp \texttt{dp} dp,树形 dp \texttt{dp} dp,换根 dp \texttt{dp} dp.

下文中,用 Subtree(i) \texttt{Subtree(i)} Subtree(i) 表示 i i i 的子树包含的所有节点集合。

father(i) \texttt{father(i)} father(i) 表示 i i i 节点的父亲。

KaTeX parse error: Expected '}', got '_' at position 15: \texttt{colour_̲i} 表示 i i i 节点的颜色值,黑为 − 1 -1 1,白为 1 1 1.

首先,假定 1 1 1 为根。

f i f_i fi 表示,当前联通图包含在以 i i i 为根的子树内的答案。

则必然存在:

f i = c o l o u r i + ∑ x ∈ S u b t r e e ( i ) max ⁡ ( f x , 0 ) f_i = colour_i + \sum_{x \in Subtree(i)} \max(f_x,0) fi=colouri+xSubtree(i)max(fx,0)

因为, c o l o u r i colour_i colouri 是必须包含的,其次是所有子树中的答案统计;负数不统计。

下面考虑一个换根(树形) dp \texttt{dp} dp.用 g i g_i gi 表示 整棵树去掉以 i i i 为根的子树后(保留 i i

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值