以前做过这道题目,那是还不懂状态方程。乱搞一气:

 #include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=+;
int a[maxn];
int main()
{
int T;
scanf("%d",&T);
for(int i=;i<=T;i++)
{
int n;
scanf("%d",&n);
for(int j=;j<n;j++)
scanf("%d",&a[j]);
int maxd=a[];
int temp=a[];
int left=;
int right=;
int x=;
for(int j=;j<n;j++)
{
if(temp+a[j]<a[j])
{
// left=right=j;//刚开始这里错了,不能直接转过去,先存到x中
temp=a[j];
x=j;
}
else
temp+=a[j];
if(temp>maxd)
{
maxd=temp;
left=x;
right=j;
}
}
printf("Case %d:\n",i);
printf("%d %d %d\n",maxd,left+,right+);
if(i!=T);
printf("\n");
}
}

后来的做法:

 //状态方程:dp[j]=max(dp[j-1]+a[j],a[j]);
//dp[0]=a[0];
#include <iostream>
using namespace std;
int dp[];
int a[];
int re_start[];
int main()
{
int i,t;
cin>>t;
for(i=;i<=t;i++)
{
int n,j;
cin>>n;
for(j=;j<n;j++)
cin>>a[j];
dp[]=a[];
re_start[]=;
for(j=;j<n;j++)
{
if(dp[j-]+a[j]>=a[j])
{
dp[j]=dp[j-]+a[j];
re_start[j]=re_start[j-];
}
else
{
dp[j]=a[j];
re_start[j]=j;
}
}
int d=dp[];
for(j=;j<n;j++)
if(dp[j]>d)
d=dp[j];
printf("Case %d:\n",i);
for(j=;j<n;j++)
if(d==dp[j])
{
printf("%d %d %d\n",d,re_start[j]+,j+);
break;
}
if(i!=t)
printf("\n");
}
return ;
}

HDU_1003Max Sum 简单动归的更多相关文章

  1. bjfu1332 简单动规

    挺简单的动态规划题.我用记忆化搜索打的.直接上代码: /* * Author : ben */ #include <cstdio> #include <cstdlib> #in ...

  2. HITtrainning20140417题解

    题目列表:     ID Origin Title 10 / 15 Problem A FZU 2152 文件系统   0 / 16 Problem B FZU 2153 A simple geome ...

  3. 洛谷 P1052 过河

    题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...

  4. HDU-1518 Square(DFS)

    Square Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submi ...

  5. App启动页设计实例与技巧

    App启动页,也称闪屏页,最初是为缓解用户等待Web/iOS/Android App数据加载的焦虑情绪而出现,后被设计师巧妙用于品牌文化展示,服务特色介绍以及功能界面熟悉等平台进行设计,被赋予了更加丰 ...

  6. 中山普及Day13——普及

    又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...

  7. [zoj3813]Alternating Sum 公式化简,线段树

    题意:给一个长度不超过100000的原串S(只包含数字0-9),令T为将S重复若干次首尾连接后得到的新串,有两种操作:(1)修改原串S某个位置的值(2)给定L,R,询问T中L<=i<=j& ...

  8. 极简反传(BP)神经网络

    一.两层神经网络(感知机) import numpy as np '''极简两层反传(BP)神经网络''' # 样本 X = np.array([[0,0,1],[0,1,1],[1,0,1],[1, ...

  9. 【mongoDB高级篇②】大数据聚集运算之mapReduce(映射化简)

    简述 mapReduce从字面上来理解就是两个过程:map映射以及reduce化简.是一种比较先进的大数据处理方法,其难度不高,从性能上来说属于比较暴力的(通过N台服务器同时来计算),但相较于grou ...

随机推荐

  1. Sql 字符串操作类COALESCE

    SqlServer中肯定有过将表中某列的值拼接成字符串,以","或者其他符号隔开的情况吧,一般情况我们会这样做: declare @returnValue nvarchar(max ...

  2. css 3种清除浮动方法

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  3. App引导页面源代码的实现

    一.页面效果图

  4. ADO.NET详解----核心对象的使用

    一.Connection对象 指定某个具体数据源以及提供登陆方式及用户名与密码. Connection对象的主要成员: 1.ConnectionString属性:连接字符串,指定要操作的数据库以及登录 ...

  5. VS2015 启用“仅我的代码”

    在调试网站的时候,如果不勾选 [启用"仅我的代码"],会跳出一大堆异常,但是异常不作处理,非常烦人: 解决办法就是在 [调试]->[选项]->[勾选 启用"仅 ...

  6. JavaSE复习日记 : 八种基本数据类型

    /* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...

  7. codility上的练习(5)

    codility出了lesson 5了. (1) 合法括号序列,包括( [ { ) ] }这6种字符的字符串,长度N在[0..200000]范围内,为其是否合法. 要求时间复杂度O(N),空间复杂度O ...

  8. 理解Ajax

    1.优化原则 优化的目的是希望降低程序的整体开销.虽然在程序中有许多因素可以优化,但是通常人们会认为这个开销就是程序的执行时间.其实我们更应该把重点放在对程序整体开销最大的那部分.   2.一切都是权 ...

  9. 运用DIV拖拽实现resize和碰撞检测

    运用DIV拖拽实现resize和碰撞检测 Div由拖拽改变大小 演示demo 当我们运用html元素"textarea"写一个文本输入框时,浏览器会自动生成以下样式 用鼠标拖动右下 ...

  10. OutputDebugString 输出信息到调试器

    #include <Windows.h>#include <stdio.h>#include <stdarg.h> void __cdecl odprintf(co ...