hdoj 1003 最大连续子序列问题


第一次写博客

刚刚开始的菜鸡

我刚开始看这道题的第一想法就是暴力

然后提交果断超时了

然后去网上查了一下借鉴了别人的想法这题果断还是要动态规划啊

代码如下


#include<iostream>
using namespace std;
int main()
{
    int T,start,end,max,sum,flag;
    scanf("%d", &T);
    for(int ii = 0;ii<T;ii++){
        int t;
        scanf("%d", &t);
        scanf("%d", &max);
        sum = max;
        start = end = flag = 0;
        for (int i = 1; i < t; i++) {
            int a;
            scanf("%d", &a);
            if (sum >= 0)
                sum += a;
            else
            {
                sum = a;
                flag = i;
            }
            if (sum > max) {
                max = sum;
                start = flag;
                end = i;
            }
        }
        printf("Case %d:\n%d %d %d\n", ii + 1, max, start+1, end+1);
        if (ii < T - 1)
            printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/peanutboom/article/details/86555862