2018.10.15 NOIP训练 水流成河(换根dp)

传送门
换根dp入门题。


貌似李煜东的书上讲过?
不记得了。
先推出以1为根时的答案。
然后考虑向儿子转移。
我们记 f [ p ] f[p] f[p]表示原树中以 p p p为根的子树的答案。
g [ p ] g[p] g[p]表示把根换成 p p p时整棵树的答案。
于是有 g [ v ] = f [ v ] + m i n ( g [ p ] − m i n ( e [ i ] . c , f [ v ] ) , e [ i ] . c ) g[v]=f[v]+min(g[p]-min(e[i].c,f[v]),e[i].c) g[v]=f[v]+min(g[p]min(e[i].c,f[v]),e[i].c)
注意边界之后就能过了。
代码

你可能感兴趣的:(#,树形dp,#,换根dp,#,dp)