CF566C Logistical Questions(101)

题意

\(n\)个点的树,有点权,有边权,\(f(x)=\sum\limits_{i=1}^n w_idis(i,x)^{1.5}\),求最小的\(f(x)\)\(x\)

单独考虑一条链,顺序编号,呈坐标形式,整棵树的每个点对其建立函数,显然是凸函数
\(n\)个函数合并起来(相加),也是凸函数

将所有的链一起考虑,通过归纳,能得到一种贪心:从某点出发,选择一个最优的邻点走,最终能找到最优解

这个可以用点分治优化

这时候会出现几个细节问题

是否出现值相同的情况?

不会,想象成连续的函数,导数递增,所以相加起来导数为零就只是在一个点的极限上

如何快速判断往哪走?也就是值的变化

由于只会有一个值变小,所以我们并不关心具体值,只关心相对大小,用导数判断即可

原文地址:https://www.cnblogs.com/Grice/p/12252310.html