zoukankan      html  css  js  c++  java
  • CodeVS 1296 营业额统计

    1296 营业额统计2002年

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 大师 Master
     
    题目描述 Description

    Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。

    Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况:

    该天的最小波动值 = min{|该天以前某一天的营业额-该天营业额|}

    当最小波动值越大时,就说明营业情况越不稳定。

    而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。你的任务就是编写一个程序帮助Tiger来计算这一个值。

    第一天的最小波动值为第一天的营业额。

    输入描述 Input Description

    第一行为正整数n(n<=32767),表示该公司从成立一直到现在的天数,接下来的n行每行有一个正整数ai(ai<=1000000),表示第i天公司的营业额。

    输出描述 Output Description

    输出文件仅有一个正整数,即每天最小波动值之和,小于231

    样例输入 Sample Input

    6

    5

    1

    2

    5

    4

    6

    样例输出 Sample Output

    12

    数据范围及提示 Data Size & Hint

    结果说明:$5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12$

    解题:利用平衡树的前后驱节点的查询。。。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long LL;
     4 const int INF = 0x3f3f3f3f;
     5 multiset<int>s;
     6 int main() {
     7     int n,tmp;
     8     LL ret = 0;
     9     scanf("%d",&n);
    10     for(int i = 0; i < n; ++i) {
    11         scanf("%d",&tmp);
    12         if(i) {
    13             multiset<int>::iterator it = s.lower_bound(tmp);
    14             if(it == s.end()) {
    15                 it--;
    16                 ret += abs(*it - tmp);
    17             } else {
    18                 int ntmp = abs(*it - tmp);
    19                 if(it!=s.begin()) {
    20                     it--;
    21                     ntmp = min(ntmp,abs((*it) - tmp));
    22                 }
    23                 ret += ntmp;
    24             }
    25             s.insert(tmp);
    26         } else {
    27             ret = tmp;
    28             s.insert(tmp);
    29         }
    30     }
    31     cout<<ret<<endl;
    32     return 0;
    33 }
    View Code
  • 相关阅读:
    css切图Sprites
    javascript改变position值实现菜单滚动至顶部后固定
    Cannot create type class java.io.File from value
    关于如何拍摄瓷器(转)
    Struts2的jar问题
    vim的基本操作
    Flask基础
    Flask入门
    MongoDB 之 数据类型
    基于DBUtils实现数据库连接池
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/4524081.html
Copyright © 2011-2022 走看看