首先考虑一个暴力的 DP:
设 fu 表示以 u 为根的子树内,要使得 u 与所有叶子不连通,最小的需要删除的点的点权和。
fu=min(au,∑(u,v)∈Efv)
当 u 没有儿子时右边那个和式当做 ∞ 处理。
按照套路设一个 gu 使得 fu=min(au,fsonu+gu)
定义 ⊗ 为把乘法换成加法,加法换成取 min 的矩阵乘法。
则 [guau∞0]⊗[fsonu0]=[fu0]
树剖维护一下就 OK 了。
代码:
1 |
|
首先考虑一个暴力的 DP:
设 fu 表示以 u 为根的子树内,要使得 u 与所有叶子不连通,最小的需要删除的点的点权和。
fu=min(au,∑(u,v)∈Efv)
当 u 没有儿子时右边那个和式当做 ∞ 处理。
按照套路设一个 gu 使得 fu=min(au,fsonu+gu)
定义 ⊗ 为把乘法换成加法,加法换成取 min 的矩阵乘法。
则 [guau∞0]⊗[fsonu0]=[fu0]
树剖维护一下就 OK 了。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment