把 AAA 升序排序。
对任意一个子序列,加入一个不大于当前平均值的未选元素不会降低得分;若已选的某个高于平均值的元素还能换成更小但仍高于平均值的未选元素,替换后平均值下降,得分同样不会降低。反复进行这些调整,可知一定存在一个最优子序列恰好是排序后数组的某个前缀。
依次枚举前缀长度 kkk 并维护前缀和 sss。前缀中的整数 AiA_iAi 严格大于平均值 s/ks/ks/k,等价于 Ai>⌊s/k⌋A_i>\lfloor s/k\rfloorAi>⌊s/k⌋;在当前前缀中二分找到最后一个不超过该值的位置,就能得到得分。
每组数据时间复杂度为 O(NlogN)O(N\log N)O(NlogN),空间复杂度为 O(N)O(N)O(N)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户