解题报告:hdu1003 Max Sum - 最大连续区间和 - 计算开头和结尾

Posted pprp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解题报告:hdu1003 Max Sum - 最大连续区间和 - 计算开头和结尾相关的知识,希望对你有一定的参考价值。

2017-09-06 21:32:22

writer:pprp

可以作为一个模板

/*
@theme: hdu1003 Max Sum
@writer:pprp
@end:21:26
@declare:连续区间最大和
@data:2017/9/6
*/

#include <bits/stdc++.h>

using namespace std;

int main()
{
    //freopen("in.txt","r",stdin);
    int cas;
    cin >> cas;
    for(int l = 1; l <= cas; l++)
    {
        int n;
        cin >> n;
        int tmp = 0, ans = -999, data2;
        int op = 1, ed = 1, k = 1;

        for(int i = 1 ; i <= n ; i++)
        {
            cin >> data2;
            tmp += data2;

            if(ans < tmp)//两个顺序不能调换,因为op这里要用上一个k
            {
                ans = tmp;
                ed = i;
                op = k;
            }

            if(tmp < 0)
            {
                tmp = 0;
                k = i + 1;
            }
        }
        if(l != 1)
            cout << endl;

        cout << "Case " << l << ":" << endl;

        cout << ans << " " << op <<  " " << ed << endl;
    }

    return 0;
}

 

以上是关于解题报告:hdu1003 Max Sum - 最大连续区间和 - 计算开头和结尾的主要内容,如果未能解决你的问题,请参考以下文章

HDU1003 Max Sum 题解 动态规划 最大字段和扩展

hdu1003 Max Sum最大连续子序列之和

HDU--1003 Max Sum(最大连续子序列和)

HDU1003:Max Sum

HDU 1003 Max Sum 求区间最大值 (尺取法)

HDU 1003 Max Sum动态规划求最大子序列和详解