/*
动态转移方程:dp[i][j]=max(dp[i-1]+a[i], max(dp[t][j-1])+a[i]) (j-1<=t<i)
表示的是前i个数j个字段和的最大值是多少!
*/
1 #include<iostream>
#include<cstdio>
#include<cstring>
#define N 10000
using namespace std; int dp[N][N], num[N]; int main()
{
int n, m, i, j, k;
while(scanf("%d%d", &m, &n)!=EOF)
{
for(i=; i<=n; i++)
scanf("%d", &num[i]);
memset(dp, , sizeof(dp));
for(j=; j<=m; j++)
for(i=j; i<=n-m+j; i++)
if(i>j)
{
dp[i][j]=dp[i-][j]+num[i];
for(k=j-; k<i; k++)//可以用一个Max变量一直更新 j-1 到 i-1 的 最大值
dp[i][j]=max(dp[i][j], dp[k][j-]+num[i]);
}
else dp[i][j]=dp[i-][j-]+num[i];
int sum=-;
for(i=m; i<=n; i++)
if(dp[i][m]>sum)
sum=dp[i][m];
printf("%d\n", sum) ;
}
return ;
}
/*
时间上优化一下!
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 1000010
using namespace std; __int64 dp[N][], num[N]; int main()
{
__int64 n, m, i, j, k, pos;
while(scanf("%I64d%I64d", &m, &n)!=EOF)
{
for(i=; i<=n; i++)
{
scanf("%I64d", &num[i]);
dp[i][]=dp[i][]=;
}
pos=;
for(j=; j<=m; j++)
{
dp[j][pos]=dp[j-][pos^]+num[j];
__int64 Max=dp[j-][pos^];
for(i=j+; i<=n-m+j; i++)
{
Max=max(Max, dp[i-][pos^]);//这一块直接将 k 的 for循环去掉
dp[i][pos]=max(dp[i-][pos], Max)+num[i];
}
pos^=;
}
pos^=;
__int64 sum=-;
for(i=m; i<=n; i++)
if(dp[i][pos]>sum)
sum=dp[i][pos];
printf("%I64d\n", sum) ;
}
return ;
}
 /*
内存上优化一下,一维数组求解!
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 1000010
using namespace std; __int64 dp[N], num[N]; int main()
{
__int64 n, m, i, j, k, oldN;
__int64 maxN;//记录dp[k][j-1] (k>=j-1 && k<i) 只有num[i]自己属于第 j 段 所有情况的最大值!
while(scanf("%I64d%I64d", &m, &n)!=EOF)
{
for(i=; i<=n; i++){
scanf("%I64d", &num[i]);
dp[i]=;
}
for(j=; j<=m; j++)
{
maxN=max(dp[j-], dp[j]);// Max = max(dp[j-1][pos^1], dp[j][pos^1])
dp[j]=dp[j-]+num[j];
for(i=j+; i<=n-m+j; i++)
{
oldN=dp[i];// 记录 dp[i-1][pos^1]
dp[i]=max(maxN, dp[i-])+num[i] ;// dp[j][pos] = dp[j-1][pos^1] + num[j]
maxN=max(oldN, maxN);
}
}
__int64 sum=-;
for(i=m; i<=n; ++i)
if(dp[i]>sum)
sum=dp[i];
printf("%I64d\n", sum) ;
}
return ;
}


HDU 1024Max Sum Plus Plus(最大m字段和)的更多相关文章

  1. HDOJ(HDU).1258 Sum It Up (DFS)

    HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...

  2. 杭电1024Max Sum Plus Plus

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=1024 题目: Problem Description Now I think you have got a ...

  3. MyBatis处理一行数据-MyBatis使用sum语句报错-MyBatis字段映射-遁地龙卷风

    第二版 (-1)写在前面 我用的是MyBatis 3.2.4 (0) 编程轶事 select sum(value) ,sum(value2)  from integral_list where  Me ...

  4. hdu 1258 Sum It Up(dfs+去重)

    题目大意: 给你一个总和(total)和一列(list)整数,共n个整数,要求用这些整数相加,使相加的结果等于total,找出所有不相同的拼凑方法. 例如,total = 4,n = 6,list = ...

  5. 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum

    Sum Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ...

  6. HDU 1231 最大连续子序列 &&HDU 1003Max Sum (区间dp问题)

    C - 最大连续子序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  7. HDU 4704 Sum (高精度+快速幂+费马小定理+二项式定理)

    Sum Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  8. HDU 5776 sum (模拟)

    sum 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5776 Description Given a sequence, you're asked ...

  9. hdu 5586 Sum 最大子段和

    Sum Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5586 Desc ...

随机推荐

  1. [原] XAF 如何啟用ListView橫向滾動條

    using System; using DevExpress.ExpressApp; using DevExpress.ExpressApp.Win.Editors; using DevExpress ...

  2. pc端和android端应用程序测试有什么区别?(ps面试题)

    pc端和android端应用程序测试有什么区别?(ps面试题) [VIP7]大连-凭海临风(215687736) 2014/4/10 8:56:171.测试环境不同PC平台一般都是windows an ...

  3. IOS开发——使用数据库

    IOS开发——使用FMDB数据库 简介 需求作用: 如果需要保存大量的结构较为复杂的数据的时候,使用数据库,例如交规考试项目 1.数据库的基本介绍 数据库(DB)是一种数据模型组织起来并存放存储管理的 ...

  4. java获取路径的方法

    package com.zjf; import java.io.File; public class GetPath { public static void getPath() { //方式一 Sy ...

  5. [ASE]sprint3 总结 & sprint4计划

    斯普润特4! 啊终于到最后一个阶段了…… 有种苦日子就要熬到头跟小组合作意犹未尽的感觉 那么开始sprint3-sprint4的衔接吐槽总结 在之前的两周也就是sprint3期间正赶上出国申请的dl, ...

  6. noty – jQuery通知插件

    noty是一个jQuery的通知(信息提示)插件,灵活轻便,是一个非常棒的用于替代传统提示对话框的插件. 当前最新版本为2.1.0: 从https://github.com/needim/noty 可 ...

  7. 解决IE6下png图片透明度不显示的问题

    世界上最遥远的距离,不外乎我在搞前端,你却在用旧IE,现在随着XP要退休了,IE6的市场占有率应该也会逐步下滑.不过基于天朝人民的惰性以及企鹅微软的“扎篱笆”活动,做网站的朋友依旧不能忽视IE6的存在 ...

  8. 使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式

    DevExpress报表确实强大,花样繁多,眼花缭乱. 这次使用XtraReport开发报表,很多问题在官方的文档中并没有详细的说明,特此记录. 1.XtraReport中FormattingRule ...

  9. JavaScript思维导图—变量

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  10. Jquery相册插件(开源下载)

    一,导言 上次 “不定义JQuery插件,不要说会JQuery” 的博客写的肤浅,漏洞百出,而且最重要的是从理论上说如何定义一个jQuery插件,没有实质性的写一个jQuery插件出来,这未免是纸上谈 ...