转 $45$ 度分析,就明显一些(?
首先要想到怎么刻画贪心合并出来的子树形态:考虑从下往上做,上传 $f_{u,i}$ 表示 $u$ 子树高度在 $i$ 位置时的最小宽度。即子树 $T$,定义其宽度序列 $seq(T) = \{l_0, l_1, ..., l_k\}$ 来描述这个子树高度为 $i$ 时宽度为 $l_i$。一个必要条件是,合法的宽度序列 $l$ 必须满足对所有 $i > 0$,有 $l_i \geq l_{i-1} - 1$。
有 $seq(leaf) = \{0\}$。假设某个节点 $u$ 有两个子节点 $v_L$ 和 $v_R$,它们的宽度序列分别为 $P$ 和 $Q$。设 $u$ 到 $v_L,v_R$ 的边下界长度为 $c_L,c_R$,则在 $P$ 和 $Q$ 的后面分别加 $c_L-1,c_R-1$ 个 $0$,得到新的宽度序列。
考虑所有叶子有相同的 $x+y$,在 $u$ 的子树中,高度 $i$ 的宽度至少为 $P_i + Q_i + 1$。将合并后的序列 $S$ 计算成 $S_i = P_i + Q_i + 1$,再从前往后执行 $chkmax(S_i,S_{i-1}-1)$ 的操作,最终再追加一个 $0$ 表示 $u$。
缩颜色段后启发式合并即可做到 $\mathcal O(n\log^2n)$ 的复杂度。