总会有地上的生灵,敢于直面雷霆的威光|

sLMxf

园龄:1年6个月粉丝:2关注:0

树形DP

1. 树形DP

树形DP,顾名思义,在树上进行的DP。

一般来说有两种DP方式:

  1. 根 → 叶:即根的子节点传递有用的信息给根,之后由根得出最优解的过程。
  2. 叶 → 根:通常我们可以选择根节点(有根),或任选某顶点(无根)dfs遍历一遍树,再用换根的方式将信息传递到所有节点,过程中利用每条边来父子交换转移信息。

总而言之,一般用方法二。

2. 没有上司的舞会

如果定义 dpidp_i 表示 ii 号为根的最优解,发现做不出来。

定义 dpi,0/1dp_{i,0/1} 表示在第 ii 个点上选/不选的最优解。

则有:

dpi,1=dpu,0dp_{i,1}=\sum dp_{u,0} dpi,0=max{dpu,0,dpu,1}dp_{i,0}=\sum \max\{dp_{u,0}, dp_{u,1}\}

其中 u\text{u} 表示儿子。

3. 最大子树和

就是求树上最大连通块。

对于每棵子树,如果他的子树 xx 的和为负数就不用加了。

即:dpi=(dpu×[dpu>0])dp_i=\sum (dp_u\times[dp_u>0])[x][x] 是判断。

本文作者:sLMxf

本文链接:https://www.cnblogs.com/SLMXF/p/18564554

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   sLMxf  阅读(9)  评论(0编辑  收藏  举报  
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示