本文主要是介绍HDU 1003(最大子序列和),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:给出数据组数,每组第一个数为序列的长度n,后面跟着n个数。求这个序列的最大子序列和。
#include <cstdio>
#include <climits>
void res()
{
int n, sum = 0, _max = INT_MIN, t, head = 0, s, e;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &t);
sum += t;
if (_max < sum)
{
_max = sum;
s = head;
e = i;
}
if (sum < 0)
{
sum = 0;
head = i+1;
}
}
printf("%d %d %d\n", _max, s+1, e+1);
}
int main()
{
int t;
scanf("%d", &t);
for (int _t = 1; _t <= t; ++_t)
{
if (_t > 1) puts("");
printf("Case %d:\n", _t);
res();
}
return 0;
}
这篇关于HDU 1003(最大子序列和)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!