zoukankan      html  css  js  c++  java
  • USACO2011 Jan:公司利润

    简要题意:

      奶牛开了家公司,已经连续运作了N 天。它们在第i 天获得了Ai元的利润,不过有些天是亏钱的,这种情况下利润就是一个负数。约翰想为它们写个新闻,吹嘘它们的惊人业绩。请你帮助他选出一段连续的日子,长度不限,但至少要包括一天,使得公司在这段日子里的利润之和最大。


    输入格式:

      • 第一行:单个整数N,1 ≤ N ≤ 10^5

      • 第二行到第N + 1行:第i + 1行有一个整数Ai,−1000 ≤ Ai ≤ 1000


    输出格式:

      • 单个整数:表示最大的利润之和


    样例输入:

    7
    -3
    4
    9
    -2
    -5
    8
    -3


    样例输出:

    14


    样例解释:

      选择第三天到第六天,4 + 9 − 2 − 5 + 8 = 14


    题解:

      这道题求的是最大连续子段和,很经典的题,也是贪心做法,一旦利润和为负数则立即停止往后加,以免影响后面的最大和


    参考代码:

    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int a[110000];
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        int sum=0,ans=-999999999;
        for(int i=1;i<=n;i++)
        {
            if(sum<0) sum=0;
            sum+=a[i];
            if(ans<sum) ans=sum;
        }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    ava新手入门详细介绍
    FreeRTOS源代码的编程标准与命名约定
    Java基础学习笔记
    如何提高单片机C语言代码效率
    java三大框架介绍
    Java代码优化六大原则
    单片机C语言基础编程源码六则2
    单片机C语言基础编程源码六则
    Java编程代码性能优化总结
    SAP ALV报表模板
  • 原文地址:https://www.cnblogs.com/Never-mind/p/7759785.html
Copyright © 2011-2022 走看看