• HDU 1003 基础dp 最大连续序列和


    常常做错的一道题..

    因为总是要有一个长度的 所以一开始的s与e都是1 maxx也是a[1]

    然后再求 从i=2开始

    在这里注意 me永远是当前i 而ms则可能留在原地 可能直接等于i 

    判断条件就是当前序列和与当前序列和加上a[i]的关系 

    好久没做题了..手生啊...

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<map>
    #include<math.h>
    using namespace std;
    int t;
    int main(){
    scanf("%d",&t);
    int tt=0;
    while(t--)
    {
        tt++;
        int n;
        scanf("%d",&n);
        int a[n+1];
        int ms=1;
        int me=1;
        int maxx=-9999;
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        int s=1;
        int e=1;
        int h=a[1];
        maxx=a[1];
        for(int i=2;i<=n;i++)
        {
            if(h+a[i]<a[i])
            {
                h=a[i];
                s=i;
            }
            else
            {
                h+=a[i];
            }
            if(maxx<h)
            {
                maxx=h;
                ms=s;
                me=i;
            }
        }
        printf("Case %d:
    ",tt);
        printf("%d %d %d
    ",maxx,ms,me);
        if(t!=0)
            printf("
    ");
    }
    }
    

      

  • 相关阅读:

    删与改

    基本操作
    名词解释
    Python内置函数(11)——complex
    Python内置函数(10)——float
    Python内置函数(9)——int
    Python内置函数(8)——bool
    Python内置函数(7)——sum
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/5204182.html
Copyright © 2020-2023  润新知