1 条题解

  • 0
    @ 2022-6-30 14:48:00

    f[i]表示 前i条鱼组成仪仗队 获得最大魅力值。

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

    这里枚举 不要第j条鱼

    预处理 sum[i] 表示前i条鱼的魅力累加和。

    f[i]=f[j-1]+sum[i]-sum[j] 。

    这样可以拿到部分分数。

    观察 状态转移方程,很有优化的冲动。 如果 j1<j2<i

    如果 f[j1-1]+sum[j1] < f[j2-1]+sum[j2] 那么 j1直接被j2淘汰,j1这个状态就不需要。 否则的话 肯定先用j1进行状态转移,而j2 还要保留。

    这里我们可以借助 单调队列维护,并且是 f[j]+sum[j] 的单调递减的单调队列。

    当然 可以用优先队列(堆)维护也行。标程用的是优先队列。

    • 1

    信息

    ID
    1368
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者