QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: NuclearPasta

Posted at: 2026-04-23 17:45:01

Last updated: 2026-04-23 17:57:34

Back to Problem

New Editorial for Problem #6236

首先设 $len_i$ 为 $i$ 到 $1$ 的路径总长,可以得出转移公式:

$$ \begin{aligned} dp_u &= \min_{v,\operatorname{lca}(u,v) = v,len_v \ge len_u - l_u}\{dp_v + (len_u - len_v)p_u + q_u\} \\ &= \min_{v,\operatorname{lca}(u,v) = v,len_v \ge len_u - l_u}\{dp_v - len_v p_u + len_u p_u + q_u\} \\ &= \min_{v,\operatorname{lca}(u,v) = v,len_v \ge len_u - l_u}\{dp_v - len_v p_u\} + len_u p_u + q_u \end{aligned} $$

为典型的斜率优化形式,考虑凸包上二分进行转移。

对于树为链,则可以线段树带凸包解决问题。

对于一般树,考虑树链剖分,如果是重链前缀则可以考虑另外处理重链前缀凸包,强制保留最后一个元素,并将每个链上节点视作新的森林的节点,森林的每个点的父节点为这个元素刚加入后凸包中上一个元素,这样就可以将二分改为树上倍增条链,时间复杂度 $\operatorname{O}(n\log^2 n)$。

Comments

No comments yet.