给出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. Android_几种菜单

    Android中的菜单有如下几种: OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用 SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮框 ...

  2. IT人的乐趣与价值

    it人员“偷摸”实现个人潜在价值的一些方向.    1.做一名站长.现在做一个个人博客或者CMS系统,都可以从网上找到相关开源的程序.花十几块钱申请个域名,再花个百来块租个空间,你就具备了当站长的外界 ...

  3. Nginx proxy_set_header 配置注意事项

    转载自:https://www.jianshu.com/p/fd16b3d10752 如果没有特别注意 proxy_set_header 配置,使用 proxy_set_header 可能会引起以下问 ...

  4. TAB_JG_COMMAND_SERVERINFO

    简介 存储设备基本信息 表结构

  5. (转)git使用规范

    转自:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个 ...

  6. 全栈高级web前端工程师的必经之路

    这是最近整理的一个进阶高级web工程师的技术栈 同时也是激励自己每天来看一下离真正的王者还有多少距离! 过段时间再来反思一下自己进步了多少? ------------------------20190 ...

  7. JS高级---沙箱小案例

    沙箱小案例 substr截取, 从指定的字段开始截取 (function () { var str="小白喜欢小黑"; str=str.substr(2); console.log ...

  8. 题解【洛谷P1314】[NOIP2011]聪明的质监员

    题面 题解 不难发现,\(W\)增大时,\(Y\)值会随之减小. 于是考虑二分\(W\). 如何\(\mathcal{O}(N)check?\) 每一次前缀和记录一下\(1-i\)之间\(w_i \g ...

  9. EF CodeFirst 之 Fluent API

    如何访问Fluent API: 在自定义上下文类中重写OnModelCreating方法,在方法内调用. 注:用法基本一样,配置类中的this就相当于modelBuilder.Entity<Pe ...

  10. 使用JavaMail发送邮箱详解

    package com.gqz.forfuture.email; import java.util.Date; import java.util.Properties; import javax.ma ...