航电oj1024

Posted glodears

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了航电oj1024相关的知识,希望对你有一定的参考价值。

题意:将元素为n的序列划分出m个不相交的子段,并求最大子段和。

例:输入2 6 -1 4 -2 3 -2 3,其中m=2,n=6

4 -2 3 和 3两个子段和为8。

运用动态规划的思想,设置数组dp记录i个子段和的最大值且第i个子段包含num[j]项。

#include <iostream>

using namespace std;

#define INF 0x3f3f3f
int num[1000010],dp[1000010],pre[1000010];
int main()
{
    int n,m,i,j,sum;
    while(cin>>m>>n)
    {
        for(i=1;i<=n;i++)
        {
            cin>>num[i];
            dp[i]=0;
            pre[i]=0;
        }
        dp[0]=pre[0]=0;
        for(i=1;i<=m;i++)
        {
            sum=-INF;
            for(j=i;j<=n;j++)
            {
                dp[j]=max(dp[j-1],pre[j-1])+num[j];
                pre[j-1]=sum;
                sum=max(dp[j],sum);
            }
        }
        cout<<sum<<endl;

    }
    return 0;
}

  

以上是关于航电oj1024的主要内容,如果未能解决你的问题,请参考以下文章

1024狂欢力扣经典链表OJ题合集

light oj 1024 - Eid 大整数乘法

数字化航电平台 3D 可视化,图扑助力珠海航展国产民机航电平台品牌发布

1024. 视频拼接 dp

Leetcode.1024 视频拼接

继C919后 恒润科技航电系统集成测试解决方案又支持新机型