Poj 2479 Maximum sum【双向DP/最大连续和】

Maximum sum

题意:给定一个长度为N的数组,求两个连续的子序列,使得两个连续子序列的和最大。

分析:乍一看,跟最大连续和有点类似,但是,又有区别,因为对于这个题,考虑第i项两个连续子序列的最大和,不能仅仅由前i-1项递推得出,第i项两个连续子序列的最大和,与前i项和i以后的之间是存在关系的,因此这个题目是一个双向dp。

假如给定的序列为a0, a1, a2, a3, a4, ...... ,an,那么,对于任意第i项,我以第i个元素为分界点,用一个数组项pMax [i]来保存  区间 [1,i ] 的最大连续子段和【包含第i点】,然后我用nMax[i]  来保存  区间 [i,N]  的最大连续子段和,对于整个区间 [1,N] 来说,两个最大连续子序列的和 Ans = max(pMax[i] + pMaxi+1])【这时i∈[1,N]即可】,这个过程的复杂度为O(N)。这样我就将这个问题就转化为 求两个区间的最大连续和的问题了【求最大连续和的方法我便不再累赘啦微笑】,这个过程的复杂度也为O(N),那么这样࿰

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值