hdu 1024(dp*优化)
来源:互联网 发布:ubuntu tmux 编辑:程序博客网 时间:2024/05/16 09:19
本题的大致意思为给定一个数组,求其分成m个不相交子段和最大值的问题。
设Num为给定数组,n为数组中的元素总数,Status[i][j]表示前i个数在选取第i个数的前提下分成j段的最大值,其中1<=j<=i<=n && j<=m,状态转移方程为:
Status[i][j]=Max(Status[i-1][j]+Num[i],Max(Status[0][j-1]~Status[i-1][j-1])+Num[i])
乍看一下这个方程挺吓人的,因为题中n的限定范围为1~1,000,000而m得限定范围没有给出,m只要稍微大一点就会爆内存。但仔细分析后就会发现Status[i][j]的求解只和Status[*][j]与Status[*][j-1]有关所以本题只需要两个一维数组即可搞定状态转移。
设Num为给定数组,n为数组中的元素总数,Status[i][j]表示前i个数在选取第i个数的前提下分成j段的最大值,其中1<=j<=i<=n && j<=m,状态转移方程为:
Status[i][j]=Max(Status[i-1][j]+Num[i],Max(Status[0][j-1]~Status[i-1][j-1])+Num[i])
乍看一下这个方程挺吓人的,因为题中n的限定范围为1~1,000,000而m得限定范围没有给出,m只要稍微大一点就会爆内存。但仔细分析后就会发现Status[i][j]的求解只和Status[*][j]与Status[*][j-1]有关所以本题只需要两个一维数组即可搞定状态转移。
在进行更进一步的分析还会发现其实Max(Status[0][j-1]~Status[i-1][j-1])根本不需要单独求取。在求取now_Status(保存本次状态的数组)的过程中即可对pre_Status(保存前一次状态的数组)进行同步更新。
#include <iostream>#include<stdio.h>#include<string.h>using namespace std;#define N 1000005#define inf 0x3f3f3f3fint max(int a,int b){return a>b?a:b;}int n,m,maxnn;int f[N],dp[N],maxn[N];int main(int argc, char *argv[]) {while(~scanf("%d%d",&m,&n)){for(int i=1;i<=n;i++){scanf("%d",&f[i]);dp[i]=0;maxn[i]=0;}for(int j=1;j<=m;j++){ maxnn=-inf;for(int i=j;i<=n;i++){/*for(int k=j-1;k<=i-1;k++)/////超时 maxn=max(maxn,dp2[k]+f[i]);dp2[i]=dp[i];*/dp[i]=max(dp[i-1]+f[i],maxn[i-1]+f[i]);maxn[i-1]=maxnn;//////////优化 maxnn=max(maxnn,dp[i]);/////////}}printf("%d\n",maxnn);}return 0;}
0 0
- hdu 1024(dp*优化)
- hdu 四边形优化dp
- 【斜率优化dp】HDU 2993
- hdu 4258(斜率优化DP)
- hdu 3516 四边形优化dp
- hdu 3507 斜率优化dp
- HDU 3480 DP+斜率优化
- hdu 2993 斜率优化DP
- hdu 3507 斜率优化DP
- hdu 2829 斜率优化DP
- hdu 3507 斜率优化dp
- hdu 5013 优化疑问+dp
- hdu 3507 斜率dp优化
- hdu 5745 dp+bitset优化
- HDU 5745 dp, bitset优化
- hdu 3507 斜率优化dp
- HDU 3480 斜率优化DP
- hdu 2829 斜率优化DP
- Android中TextView中的文字颜色设置setTextColor的用法
- 关于调用隐藏窗体的问题(C#)
- 黑马程序员——JAVA7K面试题——银行调度系统
- PHP 判断常量,变量和函数是否存在
- 书感
- hdu 1024(dp*优化)
- 递归实现最大公约数:辗转相除法
- Android中的安全与访问权限控制
- 深入理解Android 中的init
- hdu 1576A/B(扩展欧几里得)
- Container With Most Water - LeetCode
- 软件项目版本号设置
- HDU 1046
- 转:模式识别 机器学习 计算机视觉 相关资料 论坛 网站 牛人...