首页 > 其他 > 详细

动态DP

时间:2019-10-26 23:18:04      阅读:85      评论:0      收藏:0      [点我收藏+]

应用

动态\(DP\)主要是解决:在树上或链上\(dp\)后,后期对树上链上的点进行修改,然后询问修改后的答案。

其经典例题:

\(n\)个点的树,给出每个点的点权,求最大权独立集。中途给出\(m\)个修改,每次修改后输出修改后的最优答案。

解决

我们主要考虑树上,解决这类问题,需要用到三个算法,树形\(dp\),树链剖分,矩阵乘法。

树形\(dp\)

我们先简单考虑不进行修改,那么这是一道非常简单的树形\(dp\)题,设\(f[x][1]\)为此点必选,\(f[x][0]\)为此点必不选的最大权值。

转移是,设\(v\)\(x\)子节点,\(f[x][1]=\sum f[v][0] +a[x]\)\(f[x][0]=\sum max(f[v][0],f[v][1])\)

动态DP

原文:https://www.cnblogs.com/redegg/p/11745872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!