P2234 [HNOI2002]营业额统计——set
创始人
2024-03-28 23:44:05
0

[HNOI2002]营业额统计

题目描述

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

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

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

我们定义,一天的最小波动值 = min⁡{∣该天以前某一天的营业额−该天营业额∣}\min\{|\text{该天以前某一天的营业额}-\text{该天营业额}|\}min{∣该天以前某一天的营业额−该天营业额∣}。

特别地,第一天的最小波动值为第一天的营业额。

输入格式

第一行为正整数 nnn(n≤32767n \leq 32767n≤32767) ,表示该公司从成立一直到现在的天数,接下来的 nnn 行每行有一个整数 aia_iai​(∣ai∣≤106|a_i| \leq 10^6∣ai​∣≤106) ,表示第 iii 天公司的营业额,可能存在负数。

输出格式

输出一个正整数,即每一天最小波动值的和,保证结果小于 2312^{31}231。

样例 #1

样例输入 #1

6
5
1
2
5
4
6

样例输出 #1

12

提示

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

分析

  1. 除了第一天,其他天的最小波动值是 他之前的所有天其中一天与其今日营业额的差值取最小值,就是今天的最小波动值;所以需要想到排序今天之前的所有天,我们可以借助于set,来自动帮我们排序;
  2. lower_bound函数,去找到第一个>=x的位置(返回值是迭代器);然后会出现两种情况,要么==x,那就不用做任何处理;要么>x,所以我们取x与他两边的差值的最小值即可;
  3. 需要注意对set做个边界处理,比如 set已有的内容为:1 3 4 5,现在正处理某一天的营业额x,x=15,那么就在set找不到大于等于15的数,就会出错;同理当t指的是set的第一个数,迭代器t–,可能会越界; s.insert(1e7); s.insert(-1e7);
#includeusing namespace std;int n, x, ans;
set s;int main() {cin >> n;//做个边界处理s.insert(1e7);s.insert(-1e7);//第一月特处cin >> ans;s.insert(ans);for (int i = 1; i < n; ++i) {cin >> x;set::iterator t = s.lower_bound(x);//第一个>=x的位置if (*t == x) {//可以省去,但是这是下面为啥写else的原因//ans+=0//s.insert(x); 加了也会自动去重} else {int t1 = *t;t--;int t2 = *t;ans += min(abs(t1 - x), abs(t2 - x));s.insert(x);}}cout << ans;return 0;
}

相关内容

热门资讯

马来西亚驻华大使馆副馆长引两国... 来源:中国新闻网 中新网青岛7月4日电(胡耀杰 张孝鹏)“正如中国谚语所说,众人拾柴火焰高。在马来西...
天能重工:聘任高级管理人员 证券日报网讯 7月4日晚间,天能重工发布公告称,公司董事会同意聘任翟成海先生担任公司副总经理。
国家公园成暑期游新顶流国家公园... 来源:@央视财经微博 【#国家公园成暑期游新顶流##国家...
瞄准供应链绿色转型,农产品流通... 转自:贝壳财经新京报讯(记者张洁)7月4日,新京报记者获悉,由中国连锁经营协会与中国农业科学院农业经...
云知声飙涨60%,将临盈利拐点...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 文 / 二风6月30...
电视剧《护宝寻踪》研讨会在京举... 中国青年报客户端讯(中青报·中青网记者 沈杰群)7月2日,电视剧《护宝寻踪》研讨会在京举行。电视剧《...
比特币跌破108000美元,日... 每经AI快讯,7月4日,比特币跌破108000美元,日内跌幅达到1.05%。
恒鑫生活:公司具备根据客户个性... 证券日报网讯恒鑫生活7月4日发布公告,在公司回答调研者提问时表示,公司具备根据客户个性化需求提供纸制...
长安汽车:2025年6月公司实... 证券日报网讯长安汽车7月4日发布公告,在公司回答调研者提问时表示,2025年6月,公司实现销售23....
2025“上海之夏”正式启动 ... 中新网上海7月4日电 (李秋莹 姜煜)7月4日晚,2025“上海之夏”国际消费季(以下简称“上海之夏...