Max Sum Plus Plus

Posted 中单支援路死河道

tags:

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

DP题自己实在想不出来,看大神代码才能勉强理解一下

   #include <iostream>  
    #include <cstdio>  
    #include <cstring>  
      
    using namespace std;  
      
    #define N 1000000  
    #define INF 0x7fffffff  
      
    int a[N+10];  
    int dp[N+10],Max[N+10];//max( dp[i-1][k] ) 就是上一组 0....j-1 的最大值。  
      
    int main()  
    {  
        int n,m,mmax;  
        while (~scanf("%d%d",&m,&n))  
        {  
            for (int i=1;i<=n;i++)  
            {  
                scanf("%d",&a[i]);  
            }  
            memset(dp,0,sizeof(dp));  
            memset(Max,0,sizeof(Max));  
            for (int i=1;i<=m;i++)//分成几组  
            {  
                mmax=-INF;  
                for (int j=i;j<=n;j++)//j个数分成i组,至少要有i个数  
                {  
                    dp[j]=max(dp[j-1]+a[j],Max[j-1]+a[j]);  
                    Max[j-1]=mmax;  
                    mmax=max(mmax,dp[j]);  
                }  
            }  
            printf ("%d\n",mmax);  
        }  
        return 0;  
    }  

 

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

hdu 1024 Max Sum Plus Plus

杭电1024Max Sum Plus Plus

Max Sum Plus Plus——A

A - Max Sum Plus Plus

Max Sum Plus Plus

HDU 2746 ——Max Sum Plus Plus Plus