解题思路
核心思路
一次改挂只是把一篇成稿从某个方向挪到另一个方向,全集篇数不变,操作次数等于所有「被补上的篇数」之和。最终局面可以用两个整数刻画:达到阈值 b 的方向个数 x,以及全局下限 t=min(y,b)。此时至少要锁住 x⋅b+(n−x)⋅t 篇成稿,且把选定的 x 个方向抬到 b、其余方向抬到 t 的搬动次数不能超过 k。
对固定的 x,应当选当前成稿最多的 x 个方向去冲 b:把一个方向定为「达标」相对定为「只保证下限 t」的额外代价随 ai 增大而减小,因此选最大的 x 个最优。余下方向的最大可行 t 可以二分。枚举 x=0,1,…,n,取 x⋅c1+t⋅c2 的最大值。
只贪 x 或只贪 t 都会漏掉另一侧;用 y 直接乘 c2 而不与 b 取 min 会在 y>b 时算高;中间乘积必须用 64 位整数。