T701795 平衡

考虑先二分答案。那么我们只需要判断对于每一个子树内都不存在颜色个数大于二分 \(m\) 的边即可。我们发现不关心具体颜色值,只关心个数。我们设 \(f(u,j)\) 表示对于当前子树 \(u\),其孩子与 \(u\) 所代表的边颜色相同的边的个数后,其他颜色个数的最大最小值。那么对于孩子 \(v\),若 \(u\rightarrow v\) 颜色相同,有转移:

\[f^{\prime}(u,j+k)\leftarrow \min_{j+k\leq m}(f(u,j)) \]

这里不需要加上 \(f(v,k)\) 是因为我们可以换另外的颜色,那么加上一定就不优了。

若颜色不同,有转移:

\[f^\prime(u,j)\leftarrow \min_{f(u,j)+k,f(v,k)\leq m}(f(u,j)+k) \]

然后就类似树形背包复杂度分析变成了 \(O(n^2\log n)\)

posted @ 2025-11-26 14:39  tanghg  阅读(18)  评论(0)    收藏  举报