给出n个数,m个区间;

求选区m个区间的最大值;

 #include<cstdio>
#include<algorithm>
#include<math.h>
#include<queue>
using namespace std;
int d[maxn];
int pre[maxn];
int main()
{
int m,n,tmp;
while(cin>>m>>n){
int tmp;
for(int i=;i<=n;++i){
cin>>num[i];
}
//d[j]:第j个人放在第i组时的最大值(1<=i<=j<=n,1<=i<=m)(一定要有j);
//pre[j]:第前J个人中的最大值,可以不包括j;
memset(d,,sizeof(d));
memset(pre,,sizeof(pre));
//此代码采用滚动的方式,所以只有一维;
//本来面目应该是dp[j][i]:表示前j个数分成i段的情况;
for(int i=;i<=m;++i){ //这一波循环就是才用滚动的方式降维;
//为什么要降维(因为本题会超内存 hdu 1024)
tmp=-inf;
for(int j=i;j<=n;++j){
//dp[j] 求出的是在有 i 个段的情况下,包括j的前j个数中的最大值。
//此for循环里,d[j]是从此次循环的"d"和上一次循环完成的“pre[]”作为转化条件;
//因为在本循环的更新中,d[j-1]+num[j]得出的值可能比较大;所以也要作为一个选择的条件。
//而假如num[j]是负数,就会选择pre[j-1]+num[j]
d[j]=max(d[j-],pre[j-])+num[j];
//而这一次循环里的d[j]求出的值,会放到pre这个数组里,
//会跟之前的tmp择优作为下一轮滚动的条件;
pre[j-]=tmp;
tmp=max(tmp,d[j]);
}
}
cout<<tmp<<endl;
}
return ;
}

m大子段和 hdu1024的更多相关文章

  1. 【题解】前k大子段和

    题目描述 Peter喜欢玩数组.NOIP这天,他从Jason手里得到了一个大小为\(n\)的数组. Peter求出了这个数组的所有子段和,并将这\(\frac{n(n+1)}{2}\)个数降序排列,他 ...

  2. hdu1003 Max Sum---最大子段和+记录开始结束点

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意: 求最大子段和,并且输出最大子段和的起始位置和终止位置. 思路: 根据最大子段和基本 ...

  3. CF720F

    题目描述 给定1≤n≤100000,1≤k≤n(n-1)/2,和〈a_1, ... ,a_n〉,其中-50000≤a_i≤50000, 要求选出k个不同的子段,使得每个元素都被这些子段覆盖且这k个子段 ...

  4. 帝都Day7——解放篇

    昨天晚上的problems: songfen 坠大子段和,要把[l,r]其中一个数变成P,我们要把最小的数变成p. 当L,R没有取满整个区间,P可以在[L,R]外面!!!!!!!这种情况真是令人绝望. ...

  5. 《JAVA语言程序设计》上课笔记

    教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一.        问几个问题 1.             你们到这里来干什么 ...

  6. HDU1024(最大M子段和)

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  7. 【题解】最大 M 子段和 Max Sum Plus Plus [Hdu1024] [51nod1052]

    [题解]最大 M 子段和 Max Sum Plus Plus [Hdu1024] [51nod1052] 传送门:最大 \(M\) 子段和 \(Max\) \(Sum\) \(Plus\) \(Plu ...

  8. dp-最大递增子段和

      Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. M ...

  9. HDU1024 最大m子段和

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

随机推荐

  1. js获取URL里的参数

    第一种 通过正则获取URL中指定的参数 /** * 获取指定的URL参数值 * URL:http://www.xxx.com/index?name=123 * 参数:param URL参数 * 调用方 ...

  2. Spring Boot整合Dubbo2.x,解决其中遇到的坑

    Dubbo了解 a high-performance, java based open source RPC framework. Dubbo官网 源码 文档 快速知道用法 本地服务 Spring 配 ...

  3. Docker+JMeter单机版+MinIO

    基于JMeter5.1.1+MinIO JMeter发起压测  MinIO作为文件服务器 一.目录结构: Dockerfile文件: FROM ubuntu:18.04# 基础镜像 MAINTAINE ...

  4. opencv3.2.0+opencv_contrib-3.2.0+vs2015相关文件的配置

    包含目录:E:\opencvcontrib\opencv\sources\build\install\include\opencv E:\opencvcontrib\opencv\sources\bu ...

  5. date-fns时间库的基本使用

    在react中使用date-fns: import sub_days from 'date-fns/sub_days'; import start_of_week from 'date-fns/sta ...

  6. R parallel包学习笔记2

    这个部分我在datacamp上面学习笔记,可视化的性能很差,使用的函数也很少. 可以参考一下大佬的博客园个人感觉他们讲的真的很详细 https://cosx.org/2016/09/r-and-par ...

  7. window使用pycharm远程连接服务器

    1.进入pycharm, File->Settings->Deployment下: 1.新加一个Server,type为SFTP,name自定义一个,例如UI自动化项目: 2.在SFTP ...

  8. PP: Composite visual mapping for time series visualization

    However: The conventional visual mapping maps each data attribute onto a single visual channel Purpo ...

  9. C# 元组和值元组

    C# 7.0已经出来一段时间了,大家都知道新特性里面有个对元组的优化:ValueTuple.这里利用详尽的例子详解Tuple VS ValueTuple(元组类VS值元组),10分钟让你更了解Valu ...

  10. 【译】写个好的 CLI 程序

    写个好的 CLI 程序 Write a Good CLI Program 译文 原文链接:https://qiita.com/tigercosmos/items/678f39b1209e60843cc ...