题目大意:

在n个数,求不重复的m段中的数据总和的最大值

令dp[i][j]表示将前j个数分成 i 段时得到的最大值(必取到第 j 个数)

状态转移可列为 dp[i][j]=Max(dp[i][j-1]+a[j] , Max( dp[i-1][k] ) + a[j] ) 0<k<j

 #include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
using namespace std; const int N = ;
int a[N] , dp[N] , ans[N]; int main()
{
int n , m;
while(scanf("%d%d" , &m , &n) == )
{
memset(dp , , sizeof(dp));
memset(ans , , sizeof(ans));
for(int i= ; i<=n ; i++){
scanf("%d" , a+i);
}
int maxn = -0x7fffffff;
for(int i= ; i<=m ; i++){
maxn = -0x7fffffff;
for(int j=i ; j<=n ; j++){
dp[j] = max(dp[j-] + a[j] , ans[j-] + a[j]);
ans[j-] = maxn;
maxn = max(dp[j] , maxn);
}
}
printf("%d\n" , maxn);
}
return ;
}

HDU1024 多段最大和 DP的更多相关文章

  1. HDU 1024 (不重叠m段最大和) Max Sum Plus Plus

    题解是看的这里的: http://www.acmerblog.com/hdu-1024-Max-Sum-Plus-Plus-1276.html 当前这个状态是dp[i][j],i 表示当前的段,j表示 ...

  2. P1121 环状最大两段子段和(DP)

    P1121 环状最大两段子段和 难度 提高+/省选- 题目描述 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. 输入输出格式 输入格式: 输入文件 ...

  3. CF833B-线段树优化DP

    CF833B-线段树优化DP 题意 将一个长为\(n\)的序列分成\(k\)段,每段贡献为其中不同数字的个数,求最大贡献和. 思路 此处感谢@gxy001 聚铑的精彩讲解 先考虑暴力DP,可以想到一个 ...

  4. HDU1024Max Sum Plus Plus(M段最大和)

    题意:求一个数组中 M 段的 最大和 没看明白怎么搞得 抽空来看,写的不赖 #include <iostream> #include <cstring> #include &l ...

  5. 多段图动态规划dp

    多段图问题是DP的基础题目.大体的意思是有一个赋权有向图,其顶点集被分为几个子集.求经过每个子集从源点到终点的最短路径 import java.util.ArrayList; import java. ...

  6. HDU1024 Max Sum Plus Plus(DP)

    状态:d(i,j)它代表前j划分数i部并且包括第一j最佳结果时的数.g(i,j)表示前j划分数i最好的结果时,段,g(m,n)结果,需要. 本题数据较大.需採用滚动数组.注意:这题int类型就够用了, ...

  7. hdu 1024 Max Sum Plus Plus(m段最大和)

    Problem Description Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To b ...

  8. [剑指Offer]42-连续子数组的最大和(DP)

    题目链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&t ...

  9. HDU1024 Max Sum Plus Plus —— DP + 滚动数组

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1024 Max Sum Plus Plus Time Limit: 2000/1000 MS ...

随机推荐

  1. MyEclipse配置Tomcat

    1.在Window->Perferences->MyEclipse->Servers->Tomcat->Tomcat 7.x中启用Tomcat并配置Tomcat路径和JD ...

  2. 一个DBA萌新的烦恼

    莫名其妙也好机缘巧合也罢,现在我成为了一名MySQL DBA. 为什么: 1.为什么leader让我转到DBA? 首先,我本身学习运维管理的时候就接触过数据库(mysql,redis),算是自身的优势 ...

  3. android 2.2 preview3 编译bug

    平台 as2.2 preview3;   1. 解决方法: 在project.buildgradle 里面设置 // Top-level build file where you can add co ...

  4. MySQL——sql注入

    https://blog.csdn.net/lin_tuer/article/details/54809330 https://github.com/mysqljs/mysql#escaping-qu ...

  5. git 出现 The current branch is not configured for pull No value for key branch.master.merge found in configuration

    以下是我在网上找到的不错的文章,我参考后已解决我的问题: http://my.oschina.net/robinsonlu/blog/144085 http://www.cnblogs.com/zha ...

  6. druid监控及慢sql记录

    本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...

  7. Linux 控制终端转义和控制序列

    DESCRIPTION 描述 Linux控制台实现了VT102和ECMA-48/ISO 6429/ANSI X3.64终端控制的子集, 这个子集很庞大,当然还有Linux自己私有的控制序列,以改变颜色 ...

  8. python 实现代理服务器

    # encoding:utf-8 import socket import thread import re def getAddr(d): a = re.search("Host: (.* ...

  9. 计算机内存数据存储基本原理----寄存器和RAM的电路基础

    计算机里存储数据主要有这几个部件:CPU里的寄存器和缓存.内存(内存条)和磁盘,这里我们主要简单讲下寄存器和内存条的基础实现电路. 在前面的文章<CPU怎么计算1+1----CPU计算的电路基础 ...

  10. 借助百度地图API制作企业百度地图

    做网站需要插入地图,可以借助百度地图API,具体步骤如下: 1.打开百度地图API的网址:   http://api.map.baidu.com/lbsapi/creatmap/ 2.设置中心点 3. ...