zoukankan      html  css  js  c++  java
  • HDOJ 1024

    #include<iostream>
    using namespace std;
    const int N = 1000005;
    
    int p[N],pre_max[N];
    
    int max(int a,int b)
    {
    	return a>b?a:b;
    }
    
    int main()
    {
    	int i,j,k,m,n,curMax,Max;
    	while(scanf("%d%d",&m,&n)!=EOF)
    	{
    		memset(pre_max,0,sizeof(pre_max));
    		for(i=1; i<=n; i++)
    			scanf("%d",&p[i]);
    		for(i=1; i<=m; i++)
    		{
    			curMax = 0;
    			for(j=1; j<=i; j++)
    				curMax += p[j];
    			Max = curMax;
    			for(j=i+1; j<=n; j++)
    			{
    				//此时的pre_max[j-1]表示:前j-1项中含i-1个子段的最大和,且最后一个子段的最后一项是p[j-1];
    				curMax = max(curMax,pre_max[j-1]) + p[j];
    				//更新后的pre_max[j-1]表示:前j-1项中含i个子段的最大和,且最后一个子段的最后一项是p[j-1];
    				pre_max[j-1] = Max;
    				Max = max(curMax,Max);
    			}
    		}
    		printf("%d\n",Max);
    	}
    	return 0;
    }
    

      

    多学习,多总结。
  • 相关阅读:
    异步任务----django-celery
    signal函数
    shell脚本字符显示颜色
    echo输出到文件
    windows下opencv安装
    模板
    下载vs地址
    关联容器 map
    构造函数初始化列表
    assert() fflush()
  • 原文地址:https://www.cnblogs.com/yanhaiming/p/2787369.html
Copyright © 2011-2022 走看看