CF1667B Optimal Partition

题目传送门

思路:

这道题很有趣,首先根据题目,不难判断出这是一个 d p dp dp 问题。设 d p i dp_i dpi 代表从 1 ⋯ i 1 \cdots i 1i 能够得到的最大价值总和,那么 d p i = max ⁡ j { d p j + v j + 1 ⋯ i } dp_i = \max_j \{dp_j + v_{j+1 \cdots i}\} dpi=maxj{ dpj+vj+1i},尽管 v v v 值我们可以靠预处理前缀和 O ( 1 ) O(1) O(1) 得到,但是找 i i i 的过程仍然是 O ( n 2 ) O(n^2) O(n2) 的,这样是过不了这道题的。

考虑如何更快地进行解题,首先从这个条件入手,看题解发现,当一段长度大于 1 1 1 的区间 s > 0 s \gt 0 s>0 时,它加入答案才能获得更大的收益,否则,我们都可以通过拆的方式将它拆成长度为 1 1 1 的几个小段。因为 s < 0 s \lt 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值