ACM: 最大连续和O(N) 动态规划 toj…
2016-05-19 23:21
381 查看
Max
Sum
描述
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.
输入
The first line of the
input contains an integer T(1<=T<=25)
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).
输出
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.
样例输入
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
样例输出
Case 1:
14 1 4
Case 2:
7 1 6
题意: 求最大连续和,
求出序列的起始和末尾.
解题思路:
1. O(n)的时间复杂度.
代码:
#include
<cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define MAX 100005
const int INF = -(1<<29);
int n;
int a[MAX];
int begin, end;
int maxt;
int sum;
int
main()
{
// freopen("input.txt","r",stdin);
int i, j;
int caseNum;
int NUM = 1;
scanf("%d",&caseNum);
for(int k = 1; k <= caseNum;
++k)
{
scanf("%d",&n);
for(i = 0; i <
n; ++i)
scanf("%d",&a[i]);
begin = end =
0;
sum = 0;
maxt = INF;
int temp = 0;
for(i = 0; i <
n; ++i)
{
sum +=
a[i];
if(sum
> maxt)
{
end
= i;
begin
= temp;
maxt
= sum;
}
if(sum
< 0)
{
temp
= i+1;
sum
= 0;
}
}
printf("Case %d:\n",k);
printf("%d %d
%d\n",maxt,begin+1,end+1);
if(k != caseNum)
printf("\n");
}
return 0;
}
相关文章推荐
- ACM: 动态规划题 toj 1072
- ACM: 动态规划题+剪枝 toj 3904
- ACM: 博弈题 poj 1067
- ACM: 贪心法 poj 1700
- ACM: 树状DP 动态规划题 poj 1463 …
- 第一章 答疑摘选
- ACM: 简单动态规划题 poj 2955
- Smooth Rotation of Object in UNITY
- spark-graphx新的里程碑GraphDataFrames
- ACM: 最大流问题 图论题 poj 2263
- ACM: 图论题+记忆DP poj 2662 (边…
- ACM: 二分图最大匹配 图论题 poj 2…
- ACM: 有向欧拉图 图论题 poj 1386 …
- ACM: 二分图最佳匹配 图论题 poj 3…
- ACM: 动态规划 poj 1014
- ACM: 搜索题 poj 1691 一觉醒来居…
- ACM: 动态规划 黑书上的题目
- ACM: 动态规划 华东师范OJ 1244 …
- ACM: 动态规划 poj 2192
- ACM: 变形的最大公共自序列 动态规…