• NOJ2045 罗马PK


    题目链接:点击打开链接

    罗马PK

    时间限制(普通/Java) : 1000 MS/ 2000 MS          运行内存限制 : 65536 KByte
    总提交 : 196            测试通过 : 49 

    比赛描述

    一天,机智的罗老师和小马哥想比试以下到底谁更机智,于是他们找到了一个很长的数列串,决定看谁能更快地算出这条长串中子串和的最大值。

    这对于身经百战的神牛们通过编程来求解真是小菜一碟,现在想请你帮他们算出正确结果。

    eg.长串为(6,-1,5,4,-7),那么子串的最大值为:

    6+(-1)+5+4=14




    输入

    输入的第一行包含一个整数T(1<=T<=20)表示测试用例的数目。接下来有T行输入,每行以一个数N(1<=N<=100000)开头,然后接下来输入N个整数(所有的整数都在-10001000之间)。

    输出

    对于每个测试用例,你应该输出2行。第一行是 "Case #:"#表示测试用例数。第二行包含3个整数,子串和的最大值,对应字串的开始位置,对应字串的结束位置。如果有超过一个的答案,输出第一个。每两个测试用例之间有一个空白行。

    样例输入

    2
    5 6 -1 5 4 -7
    7 0 6 -1 1 -6 7 -5

    样例输出

    Case 1:
    14 1 4

    Case 2:
    7 1 6

    解:最大连续和,和pat1007很像,自己顺便把这道题也写了,PS:这题数据出的比较水。
    代码:

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    using namespace std;
    int main()
    {
        int t;
        while(scanf("%d",&t)==1)
        {
            for(int k=1;k<=t;k++)
            {
                int n;
                scanf("%d",&n);
                int *a=new int[n+1];
                for(int i=0;i<n;i++)
                {
                    scanf("%d",&a[i]);
                }
                int flag=0,left=0,right=0,sum=0,cursum=0;
                for(int i=0;i<n;i++)
                {
                    if(cursum<0)
                    {
                        cursum=a[i];
                        flag=i;
                    }
                    else
                    {
                        cursum+=a[i];
                    }
                    if(cursum>sum)
                    {
                        sum=cursum;
                        left=flag;
                        right=i;
                    }
                }
                printf("Case %d:
    ",k);
                printf("%d %d %d
    ",sum,left+1,right+1);
    
                if(k!=t)
                    printf("
    ");
            }
        }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Swift 中的函数
    Swift中的字典
    IOS组件绑定无效错误
    求余运算符
    Swift中的数组
    swift网络编程入门应用:天气预报
    iOS开发网络篇—Reachability检测网络状态
    IP-Address TextBox
    C#创建用户控件
    C# 判断 当前设备的IP地址、默认网关、子网掩码在不在同一网段内
  • 原文地址:https://www.cnblogs.com/Tobyuyu/p/4965280.html
Copyright © 2020-2023  润新知