1 条题解
-
0
自动搬运
来自洛谷,原作者为

KaguyaH
嘛。搬运于
2025-08-24 22:37:45,当前版本为作者最后更新于2022-04-19 21:57:35,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Problem Statement
给定 个点的二叉树,点有权值 。需要依次删除所有边。删边代价为两端点权值和;删边前会交换两端点权值。求最小总代价。
Constraints
。
Solution
Changelog: 修正了部分笔误,提供了避免斜率优化的做法。
记 表示以 为根的子树。认为点权是在树上移动的。
设 表示 中,将 移出,移入的点权最终停留在 ,删去子树中所有边以及 入边的最小总代价(不包括换入的点权)。
按 自下而上的顺序转移。下文中「朴素转移」意为枚举所有合法转移。下文 可能表示节点,但不会造成歧义,请注意区分。由于公式较多,有可能出现笔误。
-
若 :。
-
若 :
- 记 为 的孩子。
- 若 :$f_{u, v} = \min \lbrace d_u + f_{w, v} \rbrace \pod { \operatorname{lca}(v, w) = d }$。枚举 ,总时间复杂度 。
- 若 :$f_{u, v} = \min \lbrace f_{u, w} + d_u + d_v(\operatorname{dep}_w - \operatorname{dep}_v) \rbrace \pod {\operatorname{lca}(u, w) = d}$。枚举 ,总时间复杂度 。
-
若 :
-
若 :
记 为 在 一侧的孩子, 为另一侧的孩子。易知:应先删掉 的入边;再删掉 的边;再删掉 的边。
枚举 使得 由 移至 ;枚举 由 移至 ;枚举 移至的点 ;则有:
$$\begin{aligned} f_{u, v} &= \min_{w, x, y} \lbrace d_u + f_{w, v} + f_{x, y} + d_w({\operatorname{dep}}_y - {\operatorname{dep}}_u) \rbrace \cr &= d_u + \min_{y} \lbrace \min_x f_{x, y} + \min_w \lbrace ({\operatorname{dep}}_y - {\operatorname{dep}}_u) \cdot d_w + f_{w, v} \rbrace \rbrace \cr &= d_u + \min_w \lbrace f_{w, v} + \min_y \lbrace (\operatorname{dep}_y - \operatorname{dep}_u) \cdot d_w + \min_x f_{x, y} \rbrace \rbrace \end{aligned} \pod{ \operatorname{lca}(v, w) = d, \operatorname{lca}(x, y) = d'} $$按照第二行的式子,发现 确定时第二层大括号内部形如一个关于 的一次函数。可以斜率优化。枚举 预处理;枚举 转移;总时间复杂度 。
此外,若按照第三行的式子,发现第三层 仅与 有关,第二层 仅与 有关;可以枚举 预处理每个 对应的第三层的值,枚举 预处理每个 对应的第二层的值,枚举 进行转移,即可避免斜率优化。总时间复杂度 。
-
若 :
记 为 在 一侧的孩子, 为另一侧的孩子。易知:应先删掉 的边;再删掉 的边;再删掉 的入边。
枚举 使得 由 移至 ;枚举 移至的点 ;枚举 移至的点 ;则有:
$$\begin{aligned} f_{u, v} &= \min_{w, x, y} \lbrace f_{w, x} + d_v(\operatorname{dep}_x - \operatorname{dep}_v) + f_{u, y} + d_w(\operatorname{dep}_y - \operatorname{dep}_v) + d_u \rbrace\cr &= d_u + \min_y \lbrace f_{u, y} + \min_w \lbrace d_w (\operatorname{dep}_y - \operatorname{dep}_v) + \min_x \lbrace f_{w, x} + d_v (\operatorname{dep}_x - \operatorname{dep}_v) \rbrace \rbrace \rbrace \end{aligned} \pod{\operatorname{lca}(w, x) = d', \operatorname{lca}(u, y) = d} $$发现第二层 与 无关,第三层 与 无关。枚举 预处理;枚举 预处理;枚举 转移;总时间复杂度 。
-
若 :
记 为 在 一侧的孩子, 为 在 一侧的孩子。易知:应先删掉 的边;再删掉 的入边;再删掉 的边。
枚举 移至的点 ;枚举 使得 由 移至 ;则有:
$$f_{u, v} = \min_{w, x} \lbrace f_{u, w} + d_r (\operatorname{dep}_w - \operatorname{dep}_r) + d_u + f_{x, v} \rbrace \pod{ \operatorname{lca}(u, w) = d, \operatorname{lca}(v, x) = d' } $$枚举 预处理;枚举 转移;总时间复杂度 。
-
时空复杂度 。
-
- 1
信息
- ID
- 7639
- 时间
- 1000ms
- 内存
- 2048MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者