7 条题解

  • 5
    @ 2023-4-29 15:38:41

    考虑动归,在第i点时,在i-k到i中肯定有一个点j不能选择,即:j为断点。

    所以f[i]=max(f[i],f[j-1]+a[j+1]+a[j+2]……a[i])(i-k<=j<=i) 所以维护前缀和,然后方程就变成了

    f[i]=max(f[i],f[j-1]+sum[i]-sum[j]) (i-k<=j<=i)

    变形一下变成: f[i]=max(f[i],f[j-1]-sum[j])+sum[i] (i-k<=j<=i)

    发现max里面的值只与j有关,所以可以用单调队列优化转移。

    • -3
      @ 2023-8-24 14:29:07

      又是没有数据的一题(艹)

      • -3
        @ 2023-5-12 20:32:59

        赶紧加数据吧

        • -4
          @ 2023-9-2 15:24:06

          又是有数据的一题(dog)

          • -4
            @ 2023-9-2 10:21:06

            数据不翼而飞

            • -4
              @ 2023-7-25 18:03:45

              😕 😕 😕

              • -7
                @ 2023-10-1 19:29:37

                考虑动归,在第i点时,在i-k到i中肯定有一个点j不能选择,即:j为断点。

                所以f[i]=max(f[i],f[j-1]+a[j+1]+a[j+2]……a[i])(i-k<=j<=i) 所以维护前缀和,然后方程就变成了

                f[i]=max(f[i],f[j-1]+sum[i]-sum[j]) (i-k<=j<=i)

                变形一下变成: f[i]=max(f[i],f[j-1]-sum[j])+sum[i] (i-k<=j<=i)

                发现max里面的值只与j有关,所以可以用单调队列优化转移。

                • 1

                信息

                ID
                2047
                时间
                1000ms
                内存
                256MiB
                难度
                10
                标签
                (无)
                递交数
                30
                已通过
                0
                上传者