AGC27B Garbage Collector 题解

· · 题解

官方题解的做法,比现有题解更简洁的表述

一些观察:

考虑枚举扔垃圾的次数 k,那么扔垃圾的总代价 kX 也是定值。发现 p 前乘的系数不降,贪心地给较大的 p 安排较小的系数(x+y 一定时,|x-y| 越大,x^{2}+y^{2} 越小),因此一定是最大的 kx 作为 p_1,次大的 k 个作为 p_2\cdots\cdots 枚举系数,使用前缀和即可 O(\frac{n}{k}) 计算一个 k 的答案,时间复杂度 O(n\ln n)

注意虽然答案只有 10^{14} 级别(k=n),但某些 k(比如 k=1)时答案会达到 10^{19} 级别,我偷懒直接用 __int128

code