Gravatar
op_组撒头屯
积分:2982
提交:327 / 662

“超级无敌神仙炫酷无敌原神大王”豪华套餐堂堂复活。

首先树剖,考虑维护轻儿子的贡献,之后在重链上直接查。记 $f_u$ 为 $u$ 的子树中到 $u$ 的最大答案,$g_u$ 为 $u$ 的所有轻儿子中 $f_v$ 的最大值,$dis_u$ 为 $u$ 到根的距离。

询问时,在重链中往下走就维护 $g_u+dis_u$,往上走就维护 $g_u-dis_{fa_u}$,重链之间就用 $g_u$ 转移。

修改时,用类似询问的方法维护重链顶的 $f_u$,再更新 $g_{fa_u}$。考虑对每个点开一个 set 维护 $g_u$ 即可。

时间复杂度 $O(n\log^2 n)$,巨大难写。



题目1887  [国家集训队 2011] Crash的旅行计划      10      3 条 评论
2023-11-06 17:05:20