qoj6350. MIT

发布时间 2023-07-06 15:45:40作者: Rainbow_qwq

https://qoj.ac/problem/6350

\(k\) 固定的版本:https://qoj.ac/problem/2065

先转成 Cyclic Distance 的版本:对于所有 \(k\),求出选 \(2k\) 个点,最大的 \(\sum_{i=1}^{k} dis(p_i,p_{i\bmod k+1})\)

首先可以猜测一个结论:选 \(x+1\) 个点的最优方案是在选 \(x\) 个点的方案上加一个点。

实时维护出加 \(2k\) 个点后当前点集的带权重心(选中为 0,不选中为 1).

然后依次加入两个点,每次加的一定是离带权重心最远,且没被选中的点。可以实时维护剩余点集的直径,check 直径的两个端点。