题解:P12734 理解
huangyuze01 · · 题解
本题我们可以先定义一个直接出答案的状态:
则答案应为
对于状态转移,首先有:
考虑
-
v$ 不选,此时用于转移的是 $f_{v,0} -
v$ 作为根,此时用于转移的是 $f_{v,k}+r_v -
v$ 作为 $u$ 的儿子,此时用于转移的是 $f_{v,i-1}+t_u
但是,我们发现,对于
这时,我们可以按以下方式处理,就是先算出和再减去
F(i,2,k){
ll s = 0;
for (auto v:go[u]){
s += min(dp[v][0],min(dp[v][k]+ar[v],dp[v][i-1]+br[v]));
}
dp[u][i] = s;
for (auto v:go[u]){
dp[u][i] = min(dp[u][i],s-min(dp[v][0],min(dp[v][k]+ar[v],dp[v][i-1]+br[v]))+min(dp[v][0],min(dp[v][k]+ar[v],dp[v][i]+br[v])));
}
}
最后注意一下多测清空