题目名称 1533. [HNOI 2002]营业额统计
输入输出 turnover.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-02-25加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:217, 提交:627, 通过率:34.61%
GravatarAAAAAAAAAA 100 0.022 s 0.87 MiB C++
Gravatar河北交通广播992小强来了 100 0.025 s 0.39 MiB C++
GravatarShirry 100 0.028 s 0.91 MiB C++
Gravatarjhs 100 0.030 s 3.39 MiB C++
Gravatargls1196 100 0.036 s 7.79 MiB C++
GravatarLGLJ 100 0.049 s 2.44 MiB C++
Gravatar~Love Star 100 0.050 s 1.39 MiB C++
Gravatarcstdio 100 0.051 s 1.06 MiB C++
Gravatarnew ioer 100 0.052 s 0.92 MiB C++
GravatarFuryton 100 0.052 s 0.94 MiB C++
关于 营业额统计 的近10条评论(全部评论)
回复 @组撒头屯 :
谢谢你 你是我的神
Gravatar湖岸与夜与咸鱼
2022-11-08 08:58 35楼
回复 @湖岸与夜与咸 :
你把块长和块数弄混了吧,值域1e6块长500应该有1e6/500=2000个块。
然后循环上下界有点问题,比如40行j=0,58行i>=1,60行j=sq-1,所以你WA了两个点。
至于第8个点,ai有好多负数,得修复
Gravatarop_组撒头屯
2022-11-07 21:30 34楼
分块求助 请问一下, 此题我分块 一开始分成 sqar(10 ^ 6) 的块, 认为时间复杂度在 10 ^ 8 勉强能过 然后爆了 9 个 E
然后我试着调大块的大小, 在我认为效率越来越低下时, 反而 E 和 W 的数量逐渐减少, 甚至最后块调整到 10 ^ 5 实现了 10 -> 70
本人对分块理解不好 有没有神犇帮忙解释一下情况啊 感谢
Gravatar湖岸与夜与咸鱼
2022-11-07 12:25 33楼
FHQ_treap秒啊
GravatarHale
2019-07-18 22:14 32楼
一周目treap
二周目线段树
GravatarHzoi_Mafia
2017-08-30 15:30 31楼
回复 @Hzoi_cooook :
蛋碎了
GravatarBaDBoY
2017-07-12 20:59 30楼
回复 @하루Kiev :
上替罪羊吧
GravatarCooook
2017-07-12 19:13 29楼
丧心病狂替罪羊。
GravatarCooook
2017-07-12 19:13 28楼
回复 @Hallmeow :
逗逼
Gravatar하루Kiev
2017-07-12 16:11 27楼
感谢wx老司机带我上树hhh
GravatarHallmeow
2017-07-12 15:28 26楼

1533. [HNOI 2002]营业额统计

★★★   输入文件:turnover.in   输出文件:turnover.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

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

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

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

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

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

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

【输入格式】

第一行为正整数 $n ( n ≤ 2^{15} - 1)$ ,表示该公司从成立一直到现在的天数,接下来的 $n$ 行每行有一个正整数$a_i (a_i ≤ 10^6)$ ,表示第 $i$ 天公司的营业额。

【输出格式】

输出文件仅有一个正整数,即 $Sigma$(每天最小的波动值) 。结果小于 $2^{31}$ 。

【样例输入】

6
5
1
2
5
4
6

【样例输出】

12
  

【提示】

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

【来源】

HNOI 2002

UPD:2017.7.12 By Mike

原题数据有误,数据范围稍作调整,读入的数据中均为非负整数,即可能存在0