动态DP
Posted redegg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态DP相关的知识,希望对你有一定的参考价值。
应用
动态(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的主要内容,如果未能解决你的问题,请参考以下文章