51NOD1052 最大M字段和
分析
一眼看去我们自然会想到dp[i][j][k]表示区间[i,j]中选k个子段的最大值。然后我们考虑降去一维。我们设dp[i][j]表示考虑了前i个数,在选了a[i]的情况下共有j个子段的最大值,于是可以列出转移方程式dp[i][j]=Max{dp[i-1][j],Max{dp[k][j-1](k<i)}}+a[i],但是我们发现空间和时间都会爆炸,空间问题我们可以用滚动数组来进行解决,而对于时间问题我们可以记录一个dpmax[i][j]表示Max{dp[k][j](k<=i)}的值,注意这个dpmax数组同样也要滚动,于是我们就可以将转移复杂度变到O(1),在适当剪枝就可以AC啦。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
long long dp[][],dpmax[][],a[],cnt,sum;
int main(){
long long n,m,i,j,k;
scanf("%lld%lld",&n,&m);
for(i=;i<=n;i++)scanf("%lld",&a[i]);
long long now=;
for(i=;i<=n;i++){
now^=;
memset(dp[now],,sizeof(dp[now]));
for(j=;j<=min(i,m);j++){
dp[now][j]=max(dp[now^][j],dpmax[now^][j-]);
dp[now][j]+=a[i];
dpmax[now][j]=max(dp[now][j],dpmax[now^][j]);
}
}
printf("%lld\n",dpmax[now][m]);
return ;
}
51NOD1052 最大M字段和的更多相关文章
- UniEAP V4 WorkShop用户手册
版权声明<UniEAP V4 WorkShop用户手册>的版权归东软集团(大连)有限公司所有.未经东软集团(大连)有限公司的书面准许,不得将本手册的任何部分以任何形式.采用任何手段(电子的 ...
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
- MySQL设置字段的默认值为当前系统时间
问题产生: 当我们在对某个字段进行设置时间默认值,该默认值必须是的当前记录的插入时间,那么就将当前系统时间作为该记录创建的时间. 应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,应该由数据 ...
- Django admin定制化,User字段扩展[原创]
前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...
- 使用Expression实现数据的任意字段过滤(1)
在项目常常要和数据表格打交道. 现在BS的通常做法都是前端用一个js的Grid控件, 然后通过ajax的方式从后台加载数据, 然后将数据和Grid绑定. 数据往往不是一页可以显示完的, 所以要加分页: ...
- 说说BPM数据表和日志表中几个状态字段的详细解释
有个客户说需要根据这些字段的值作为判断条件做一些定制化需求,所以需要知道这些字段的名词解释,以及里面存储的值具体代表什么意思 我只好为你们整理奉上这些了! Open Work Sheet 0 Sav ...
- [DS] 标记字段
标记字段 代码中有时候有这种需求:需要一个公共访问的标记字段,以下称为标记字段. 下面是案例: 一个订单详情页面,如果页面在显示中,程序中其它地方需要访问这个"正在查看中"的订单信 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- [源码]Literacy 快速反射读写对象属性,字段
Literacy 说明 Literacy使用IL指令生成方法委托,性能方面,在调用次数达到一定量的时候比反射高很多 当然,用IL指令生成一个方法也是有时间消耗的,所以在只使用一次或少数几次的情况,不但 ...
随机推荐
- skynet源码阅读<5>--协程调度模型
注:为方便理解,本文贴出的代码部分经过了缩减或展开,与实际skynet代码可能会有所出入. 作为一个skynet actor,在启动脚本被加载的过程中,总是要调用skynet.start和sky ...
- bgcolor RGB 和16进制之间的转换,16进制转RGB,源码
<p>bgcolor RGB 和16进制之间的转换,16进制转RGB,源码例如:<br /> 输入 201,255,201 转换成 #C9FFC9</p> < ...
- 【phpcms-v9】前台content模块中pc标签的调用说明
内容模块PC标签调用说明 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列 ...
- Kattis - redblacktree Red Black Tree (树形背包)
问题:有一课含有n(n<=2e5)个结点的数,有m(m<=1000)个结点是红色的,其余的结点是黑色的.现从树中选若干数量的结点,其中红色的恰有k个,并且每个结点都不是其他任何另一个结点的 ...
- ACM学习历程—HDU5668 Circle(数论)
http://acm.hdu.edu.cn/showproblem.php?pid=5668 这题的话,假设每次报x个,那么可以模拟一遍, 假设第i个出局的是a[i],那么从第i-1个出局的人后,重新 ...
- 从XML文件乱码问题,探寻其背后的原理 (ZHUAN)
出现应用程序读取XML文件乱码的场景: 加入xml文件以<?xml version="1.0" encoding="utf-8" ?> 格式的:如果 ...
- k2 4.6.9安装记录-够复杂了
首先需要准备一台Windows server 2008R2 系统.可以从微软官方下载. 下载地址: http://www.microsoft.com/zh-cn/download/confirmati ...
- 基于SSL的WCF传输安全
[实践]WCF传输安全1:前期准备之证书制作 [实践]WCF传输安全2:基于SSL的WCF匿名客户端 [实践]WCF传输安全3:基于SSL的WCF对客户端验证 [实践]WCF传输安全4:基 ...
- Python函数-map()
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回.如下: def ...
- Proxmox qm命令应用实例
1) 把一个物理硬盘增加到VM上qm set 105 --virtio1 /dev/sdb <-- 表示把/dev/sdb物理硬盘以 virtio 接口类型增加至 105 的 ...