• HDOJ1003 Max Sum


    题目大意:和1231一样,求最大连续子序列和,只是这个题目是要求求的是最大连续子序列和的首元素位置和尾元素位置。

    题解:直接把1231的代码稍微修改一下就行了。。。

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define MAXN 100005
    typedef struct
    {
        long x,y;
    } NODE;
    NODE path[MAXN];
    long d[MAXN],a[MAXN];
    int main(void)
    {
        long i,n,maxs,l,r,T,p;
        scanf("%ld",&T);
        p=1;
        while(T--)
        {
            scanf("%ld",&n);
            for(i=0; i<n; i++)
                scanf("%ld",&a[i]);
            memset(d,0,sizeof(d));
            d[0]=a[0];
            maxs=d[0];
            l=0;
            r=0;
            for(i=1; i<n; i++)
            {
                if(d[i-1]<0)
                {
                    d[i]=a[i];
                    path[i].x=i;
                    path[i].y=i;
                    if(d[i]>maxs)
                    {
                        maxs=d[i];
                        l=i;
                        r=i;
                    }
                }
                else
                {
                    d[i]=d[i-1]+a[i];
                    path[i].x=path[i-1].x;
                    path[i].y=i;
                    if(d[i]>maxs)
                    {
                        maxs=d[i];
                        l=path[i].x;
                        r=path[i].y;
                    }
                }
    
            }
            printf("Case %ld:\n",p++);
            printf("%ld %ld %ld\n",maxs,l+1,r+1);
            if(T) printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    No module named cv2 报错处理
    CentOS 7自动以root身份登录GNOME桌面
    OpenVINO在linux下安装
    openvino资源
    electron-builder打包跳过publish
    Electron基础
    druid socket timeout超时15分钟(转载)
    第六次作业
    C语言感悟
    第五次作业
  • 原文地址:https://www.cnblogs.com/zjbztianya/p/2997092.html
Copyright © 2020-2023  润新知