您的位置:首页 > 其它

hdu 1003 MAX SUM(最大连续子序列和)

2014-04-30 22:20 309 查看
状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}.

#include <stdio.h>
int main()
{
int n, i, t, k, cc, sum;
int a,b, A, B;
scanf("%d", &t);
for(cc=1; cc<=t; cc++)
{
scanf("%d", &n);
int max=-1001;
sum=-11001;
for(i=1; i<=n; i++)
{
scanf("%d", &k);
if(sum+k<k)
sum=k, a=b=i;
else
{
sum+=k;++b;
}
if(sum>max)
{
max=sum; A=a;B=b;
}
}
printf("Case %d:\n", cc);
printf("%d %d %d\n", max, A,B);
if(cc<t) printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: