1 条题解

  • 0
    @ 2026-9-9 9:05:08

    题解

    思路

    把 AA 升序排序。

    做法

    对任意一个子序列,加入一个不大于当前平均值的未选元素不会降低得分;若已选的某个高于平均值的元素还能换成更小但仍高于平均值的未选元素,替换后平均值下降,得分同样不会降低。反复进行这些调整,可知一定存在一个最优子序列恰好是排序后数组的某个前缀。

    依次枚举前缀长度 kk 并维护前缀和 ss。前缀中的整数 AiA_i 严格大于平均值 s/ks/k,等价于 Ai>⌊s/k⌋A_i>\lfloor s/k\rfloor;在当前前缀中二分找到最后一个不超过该值的位置,就能得到得分。

    复杂度

    每组数据时间复杂度为 O(Nlog⁡N)O(N\log N),空间复杂度为 O(N)O(N)。

    • 1

    信息

    ID
    1600
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者