题解 CF566C Logistical Questions

这题非常好,对函数凸性的运用非常巧妙。

发现对于同一个 $u$,$dis(u,x)^{\frac{3}{2}}\times w_u$ 是下凸的。所以 $\sum\limits_{u}dis(u,x)^{\frac{3}{2}}\times w_u$ 也是下凸的,记为 $f(x)$。那么对于链上的一点,仅有一个方向会使其变小。由此结论,对于树上的一点,也仅有一个方向会使其变小。考虑点分治,现在的问题是如何快速判断哪个方向是优的。

当前分治到 $x$,向 $y$ 移动。考虑一个点从 $x$ 移动到 $y$,距离 $x$ 为 $\lambda$,权值为$$\sum_{u\in \text{subtree}(y)}w_u(dis(x,u)-\lambda)^{\frac{3}{2}}+\sum_{u\not\in \text{subtree}(y)}w_u(dis(x,u)+\lambda)^{\frac{3}{2}}$$

求导得$$\dfrac{3}{2}(\sum_{u\not\in \text{subtree}(y)}w_u\sqrt{dis(x,u)+\lambda}-\sum_{u\in \text{subtree}(y)}w_u\sqrt{dis(x,u)-\lambda})$$

当 $\lambda\to0$ 时,找出导数大于 $0$ 的 $y$ 即可,这个预处理一下就好。时间复杂度 $O(n\log n)$。

posted @ 2023-07-07 19:09  Terac  阅读(19)  评论(0)    收藏  举报  来源