题目描述
题解
记$dp[i][j]$表示在以$i$为根的子树中保留$j$个牛棚需要摧毁的最小道路数,显然$dp[i][1]$等于与$i$相连的道路数。
对于所有的$v \in son_{i}$,我们可以枚举在$v$的子树中保留的牛棚树进行转移。方程:
$dp_{k,j} = min(dp[k][j - l] + dp[v][l] - 2)$ $(1<=j<=p,1<=l<j)$
注意转移中的$-2$,这是由于在$dp[k][j-l]和dp[v][l]$中,$k与v$的连边都被计算了一次,实际上这条边需要保留
Code
1 |
|