坐标序列hdu 1003 解题报告 ---- Max Sum

这几周一直在查找坐标序列之类的问题,上午正好有机会和大家讨论一下.

    hdu 1003 解题告报 ---- Max Sum

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1003

    每日一道理
父亲对于儿子来说,是座耸立的高山,而儿子只是颗石子,源于山,却并不了解山。生活中诸多爱的密码,是需用细节来解读的,在亲情的沃土上,要想搞得最美的果实,惟有期待那存在于瞬间的心与心的共鸣,爱与爱的默契。
#include <stdio.h>
#include <string.h>
int main(){
    int m,n,k,temp;
    int start,end,max,sum,x,i;
    scanf("%d",&n);
    k=0;
    while(k++<n){ 
        max=-100000;
        sum=0;
        temp=1;
        scanf("%d",&m);
        for (i=0;i<m;i++){
            scanf("%d",&x);
            sum+=x;

            if(sum>=max){
                max=sum;
                start=temp;
                end=i+1;//end坐标为前目最后一个坐标
            }
            if(sum<0){
                sum=0;//若逐步递减到0了,则sum清零,并且变改下次启发坐标为i+2
                temp=i+2;//下次变改max值时的start坐标
            }
        }
        printf("Case %d:\n%d %d %d\n",k,max,start,end);
        if(k<n)
            printf("\n");
    }
    return 0;  
}

    码代中两个if判断:

    (1)若以后序列之和sum大于max,则变改end坐标为以后坐标,max=sum

    (2)若sum<0,则弃丢,启发点节下次将会酿成以后的下一个元素,

文章结束给大家分享下程序员的一些笑话语录: 手机终究会变成PC,所以ip会比wm更加畅销,但是有一天手机强大到一定程度了就会发现只有wm的支持才能完美享受。就好比树和草,草长得再高也是草,时间到了条件成熟了树就会窜天高了。www.ishuo.cn

你可能感兴趣的:(HDU)