zoukankan      html  css  js  c++  java
  • ————————————————————————动态规划——————————————————————1003——————————

    //  出现了三个问题,1   忘了写等号。2,max写成了sum,3,begin写成了again。 诡异的事情,没有写等号的话,会出现a读取错数字的情况。呵呵你所谓诡异的超神奇现象就是少写了一个等号,导致每一次都少都去一个零上一次没有用到的数据占了下一次第一个数据的位置
    //导致了惨案的发生
    
    
    #include<stdio.h>
    int main()
    {
        int n,m,i,sum,a,q,begin,over,again,max;
        scanf("%d",&n);
        for(q=1;q<=n;q++)
        {
            scanf("%d%d",&m,&a);           //  读取  序列长度,和序列首位数字。
            sum=max=a;                   //     将他们的最大值,和,都初始化为首位数字。
            begin=over=again=1;
            for(i=2;i<=m;i++)
            {
                scanf("%d",&a);
                if(sum+a<a)   //如果符合的话 就说明sum小于零,这样的话 就需要重新开始计数,和相加了(舍弃前面的不合格部分)
                {
                    sum=a;
                    again=i;
                }
                else
                {
                    sum=sum+a;
                }
                if(sum>max)
                {
                    max=sum;
                    over=i;
                }
            }
            if(q!=1)
                printf("
    ");
            printf("Case %d:
    ",q);
            printf("%d %d %d
    ",max,begin,over);
        }
    }

    头疼,是不是水题做的太少了导致经常会犯这种小错误?

  • 相关阅读:
    Luogu 4841 城市规划
    Luogu 4721 【模板】分治 FFT
    Luogu 4091 [HEOI2016/TJOI2016]求和
    Luogu 3723 [AH2017/HNOI2017]礼物
    FFT笔记
    Luogu 4900 食堂
    Luogu 4155 [SCOI2015]国旗计划
    Luogu 4069 [SDOI2016]游戏
    Luogu 4254 [JSOI2008]Blue Mary开公司
    Luogu 4251 [SCOI2015]小凸玩矩阵
  • 原文地址:https://www.cnblogs.com/A-FM/p/4998523.html
Copyright © 2011-2022 走看看