BZOJ_1588_&_Codevs_1296_[HNOI2002]_营业额统计(平衡树/set)
描述
http://www.lydsy.com/JudgeOnline/problem.php?id=1588
给出每一天的营业值,求出之前的天当中与它相差最小的营业值与它的差的绝对值(第一天的差值为他本身),求和.
1588: [HNOI2002]营业额统计
Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 12954 Solved: 4732
[Submit][Status][Discuss]
Description
营 业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业 额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了 一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大时,就说明营业情况越不稳定。 而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。你的任务就是编写一个程序帮助Tiger来计算这一个值。 第一天的最小波动值为第一天的营业额。 输入输出要求
Input
第一行为正整数 ,表示该公司从成立一直到现在的天数,接下来的n行每行有一个整数(有可能有负数) ,表示第i天公司的营业额。
Output
输出文件仅有一个正整数,即Sigma(每天最小的波动值) 。结果小于2^31 。
Sample Input
65
1
2
5
4
6
Sample Output
12HINT
结果说明:5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12
该题数据bug已修复.----2016.5.15
Source
分析
比宠物收养所更裸,果然十几年前的题都是水吗...然而我只会做水题.
注意:
1.第一次写Splay的时候重复的元素直接跳过导致一直T,后来就先把这个值伸展上来再跳过,就过了,果然这种均摊的复杂度不是可以瞎玩的...
另外,不判重似乎慢不了多少...
2.set里写成min(*it-x,x-*(--it))会出错,可能是min函数理由什么奥妙?it多减了几次?...
3.如果set里不先加入INF和-INF的话,每次需要判断*it是不是st.end()(最后一个的后面),st.begin()(第一个).
Treap:
#include <bits/stdc++.h> using namespace std; const int INF=0x3fffffff; int n,x,ans; set <int> st; int main(){ scanf("%d",&n); st.insert(INF); st.insert(-INF); scanf("%d",&x); ans=x; st.insert(x); set <int> :: iterator it; for(int i=1;i<n;i++){ scanf("%d",&x); it=st.lower_bound(x); int a=*it-x,b=x-*(--it); int ret=min(a,b); if(ret) ans+=ret, st.insert(x); } printf("%d\n",ans); return 0; }View Code
- logback 常用配置详解(三) <filter>
- 错误积累(二) There is no result type defined 错误
- 浙大 PAT Advanced level 1027. Colors in Mars (20)
- JS valueOf与字符串
- 随机数算法
- tomcat通过urlwrite.xml做301跳转
- 关于log4Net 没有日志输出的问题
- logback 常用配置详解(二) <appender>
- 用来两个栈实现一个队列。
- CKEditor的使用方法
- 你程序里的数据放在哪?
- 马走日__递归
- 浙大 PAT Advanced level 1026. Table Tennis (30)
- 加密算法
- 用原生javascript写出jquery中slideUp和slideDown效果
- 关于Volley中JsonObjectRequest使用Post设置参数的问题
- git reset head、checkout
- 消除恒流源不稳定或电阻分压非线性的影响
- C++中substr函数的用法
- logback 配置详解(一)