版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a17865569022/article/details/81868755
解析:大神详解
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int dp[1000005];
int pre[1000005];
int a[1000005];
int main()
{
int n,m;
while(cin>>m>>n)
{
for(int i=1;i<=n;i++)
cin>>a[i];
memset(pre,0,sizeof(pre));
memset(dp,0,sizeof(dp));
int Max;
for(int i=1;i<=m;i++)
{
Max=-INF;
for(int j=i;j<=n;j++)
{
dp[j]=max(dp[j-1],pre[j-1])+a[j];
pre[j-1]=Max;
Max=max(Max,dp[j]);
}
}
cout<<Max<<endl;
}
return 0;
}