1 solutions

  • 0
    @ 2025-6-15 21:35:34

    首先维护一下前缀和,这样左右断点时就可以O(1)O(1)  的得到代价。这样已经有了一个平方的做法。下面考虑如何在这个基础上减小复杂度。 首先需要观察出一个重要性质。最优方案下一定有删 1 数 = 剩 1 数(想一想,为什么?)。

    在此基础上: 100分解法1:二分查找

    考虑二分。容易发现如果已经确定了代价的最大值的话,对于一个确定的左边界,其右边界是容易找到的。 且容易判断合法。这样可以枚举每个左边界的时候,二分一下右边界。复杂度 O(nlogn)O(nlogn),相对容易想到。

    100分解法2:尺取法考虑线性做法。 左侧边界向右移动时,其右边界的位置必然单调不减。从而可以枚举左边界的时候线性滑动求出对应的右边界。该方法复杂度 O(n)O(n)

    • 1

    Information

    ID
    136
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    # Submissions
    5
    Accepted
    1
    Uploaded By