题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003

题目:

Max Sum

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 241930    Accepted Submission(s): 57107

Problem Description
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).
Output
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.
Sample Input
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5

Sample Output
Case 1:
14 1 4
Case 2:
7 1 6

题意概括:

这是一道水DP,是一个可以增加刚学会DP的童鞋们成就感的题,大概题意是,给你一个T,代表T组样例,然后每组样例给你一个数N,然后后面有N个数,问这N个数当中,那个区间的和最大,输出最大和 最大和的区间左下标 最大和的有下标
注:下标是从1开始的

解题思路:

dp的经典解题思路,利用循环,查找当前位置与之前记录的和是否比当前值还小(之前的和是否为负数),如果是,则将和赋值为当前值,记录当前值的下标,然后对记录的最大值进行比较,如果当前值更大,则更新最大区间左右下标和最大值。

AC代码:

 # include <stdio.h>int a[100010];int main (){int t,n,ret,sum,max,i,sta,end,flag=1;scanf("%d",&t);while(t--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);sta=0; end=0; ret=0;max=a[0]; sum=a[0];for(i=1;i<n;i++){if(sum+a[i]<a[i]){ret=i;sum=a[i];}else sum+=a[i];if(max<sum){max=sum;sta=ret;end=i;}}printf("Case %d:\n",flag);printf("%d %d %d\n",max,++sta,++end);flag++;if(t)printf("\n");}}

易出错分析:

第一次提交RE了一次,当时没有看清题,结果数组开小了。然后根据题意,数组开大之后,将数组放入全局变量(数组大概在1000,000左右要放入全局变量,不能放入主函数中),便AC了

转载于:https://www.cnblogs.com/love-sherry/p/6745087.html

hdu-1003 Max Sum相关推荐

  1. HDU.1003 Max Sum

    原题 HDU.1003 Max Sum 分类 动态规划 题意 计算从一个序列中最大连续子序列和.对应的起始元素和终止元素的位置. 输入/输出 要求与格式 样例数的确定 最开始一行开始输入样例数 每个样 ...

  2. hdu 1003 Max Sum (DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others)   ...

  3. hdu 1003 Max Sum 解题报告

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem Description Given a sequence a[1],a[2],a[3 ...

  4. [hdu 1003] Max Sum

    跟<算法导论(第三版)>上的一样,抄下来的 30 - 60 ms 标准的分治策略 1 #include <stdio.h> 2 3 int A[100000], Lenght; ...

  5. hdu 1003 Max Sum

    DP可以这里给出非DP程序 题目传送门 1 #include<stdio.h> 2 int main() 3 { 4 int t,n,i,max,m,sum,ki,kj,k,a,b; 5 ...

  6. HDU 1003——Max Sum(动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意:历遍所有数字,找出最大字段和. 解题思路: t和n:记录循环次数和每一段有多少个数字 ...

  7. 位置子段最大子段和 hdu 1003 max sum ACM的开始

    每日一贴,今天的内容关键字为位置子段 这个标题的印象是较比刻深的,我的第一个动态规划标题,也是ACM的开始.最大字段和是较比经典的动归问题.求一个列序的最大子段和的关键点就在于断判一个元素的归属问题, ...

  8. HDU 1244 Max Sum Plus Plus Plus

    虽然这道题看起来和 HDU 1024  Max Sum Plus Plus 看起来很像,可是感觉这道题比1024要简单一些 前面WA了几次,因为我开始把dp[22][maxn]写成dp[maxn][2 ...

  9. 杭电OJ——ACM 1003.Max Sum

    Max Sum 杭电OJ--ACM 1003.Max Sum链接入口 问题描述 大意:        给定一个序列a[1],a[2],a[3]-a[n],你需要算出其子序列中的最大值.比如说:给你一个 ...

  10. HD 1003 Max Sum (最大字段和问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem Description Given a sequence a[1],a[2],a ...

最新文章

  1. 智能驾驶操作系统OS
  2. Mybatis排序无效问题解决
  3. Ubuntu 14.04 安装 CUDA 问题及解决
  4. 蓝桥杯-回文数(java)
  5. JS对JSON的操作总结
  6. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
  7. Win10 应用程序新的图标流出,微软正在为其改头换面
  8. sqlserver2000换成mysql_MS SQL Server2000转换成MySQL
  9. hdu 1000-1099计划(31)
  10. Zabbix之Python发送邮件
  11. Spring Cloud Config分布式配置中心高可用及配置刷新(学习总结)
  12. 网易云音乐虚化图片html,网易云音乐怎么换背景 背景图片设置方法
  13. ASP.NET MVC Area使用-将Area设置成独立项目
  14. 嵌入式系统开发-麦子学院(12)——ARM Bootloader开发
  15. ArcEngine IProximityOperator踩坑小记
  16. 元学习兴起,卷积“落幕” | NeurIPS2020研究趋势总结
  17. Solidity Gas消耗
  18. java发送 NameValuePair格式post请求
  19. python + ffmpeg视频尺寸及参数转换
  20. MacOS13刷新DNS缓存

热门文章

  1. uncode移动后端云【www.uncode.cn】--简介
  2. 关闭不必要动画,提升 Win 7 运行速度
  3. VTune工具使用心得
  4. 算法设计 分治, 归并排序, 快速排序
  5. Zabbix(二)通过API在zabbix系统中查看、删除及创建监控主机
  6. 基于Swift的简易iOS天气APP
  7. Git修改用户名和邮箱的方法(附Git常用命令)
  8. vector java 复制_面试官:关于Java性能优化,你有什么技巧
  9. 用pythonturtle写名字_结婚请帖怎么写
  10. c语言lr分析器的设计与实现_Python3设计模式四 :状态模式