hduoj1003(经典dp入门)
2016-04-29 21:24
357 查看
Max Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 207382 Accepted Submission(s): 48503
Problem Description
Given a sequence a[1],a[2],a[3]……a
, 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[i]为到i为止最大的和,dp[i]=max(dp[i-1]+a[i],a[i])
#include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef int ll; #define MIN -9999 ll max(ll a,int b){ return a>b?a:b; } ll dp[100005]; ll ans,ans1; int a[100005]; int main(){ int t,n,i,j,e,f; //freopen("input.txt","r",stdin); scanf("%d",&t); for(i=1;i<=t;i++){ //ans=MIN; //memset(dp,MIN,sizeof(dp)); scanf("%d",&n); for(j=1;j<=n;j++) scanf("%d",&a[j]); e=1; ans=dp[1]=a[1]; for(j=2;j<=n;j++){ dp[j]=max(dp[j-1]+a[j],a[j]); if(ans<dp[j]){ ans=dp[j]; e=j; } } ans1=0; f=e; for(j=e;j>0;j--){ ans1+=a[j]; //printf("%d ",j); if(ans1==ans){ //printf("ans\n"); f=j; } } printf("Case %d:\n%d %d %d\n",i,ans,f,e); if(i!=t)printf("\n"); } return 0; }
相关文章推荐
- 差分约束的学习
- 解决Ubuntu 安装vim 的Package vim has no installation candidate问题,100%有效
- context上下文 php版解释
- 《HiWind企业快速开发框架实战》(3)使用HiWind创建和管理菜单
- 解决WEB项目中文件上传中文乱码问题
- 剑指offer之面试题26:复杂链表的复制
- 约瑟夫环
- web_for_pentest fileupload
- 斐波那契数列
- Linux下的软件安装和管理
- asp:DropDownList与asp:DataList的联合使用
- 【asp.net】控件
- 【Stanford机器学习笔记】3-Logistic Regression for Classification
- Java基础学习之八大基本变量
- zzulioj 1875 蛤玮的财宝 ( “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛 双线dp)
- POJ 1679 The Unique MST(次小生成树)
- android之权限
- HDU_1561_The more, The Better_树型dp
- 如何解决php 生成验证码图片不显示问题
- 如何制作朋友圈搞笑证件图片(附源码实例)