【链表】BZOJ1588: [HNOI2002]营业额统计
1588: [HNOI2002]营业额统计
Time Limit: 5 Sec Memory Limit: 162 MB
Submit: 17555 Solved: 7179
[Submit][Status][Discuss]
Description
营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况出现了问题。经济管理学上定义了一种最小波动值来衡量这种情况: 该天的最小波动值 当最小波动值越大时,就说明营业情况越不稳定。 而分析整个公司的从成立到现在营业情况是否稳定,只需要把每一天的最小波动值加起来就可以了。你的任务就是编写一个程序帮助Tiger来计算这一个值。 第一天的最小波动值为第一天的营业额。 输入输出要求
Input
Output
输出文件仅有一个正整数,即Sigma(每天最小的波动值) 。结果小于2^31 。
Sample Input
5
1
2
5
4
6
Sample Output
HINT
结果说明:5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12
该题数据bug已修复.----2016.5.15
题解
这题虽然是平衡树的题
但是其实可以用链表很快的解决
思路也很简单,看代码就能懂。。。
代码
//by 减维 #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<bitset> #include<set> #include<cmath> #include<vector> #include<set> #include<map> #include<ctime> #include<algorithm> #define ll long long #define inf 1<<30 using namespace std;struct list{int to,fr,v,pos; }e[50005];int n,ans;bool cmp(const list&x,const list&y){return x.v<y.v;} bool cm2(const list&x,const list&y){return x.pos<y.pos;}int main() {scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&e[i].v),e[i].pos=i;sort(e+1,e+n+1,cmp);for(int i=1;i<=n;++i)e[i].fr=e[i-1].pos,e[i].to=e[i+1].pos;sort(e+1,e+n+1,cm2);for(int i=n;i>=1;--i){int pre=inf,suc=inf;if(e[e[i].fr].pos)pre=abs(e[i].v-e[e[i].fr].v);if(e[e[i].to].pos)suc=abs(e[i].v-e[e[i].to].v);if(e[e[i].fr].pos||e[e[i].to].pos)ans+=min(pre,suc);e[e[i].fr].to=e[i].to;e[e[i].to].fr=e[i].fr;if(i==1)ans+=e[i].v;}printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/rir1715/p/8006754.html
【链表】BZOJ1588: [HNOI2002]营业额统计相关推荐
- bzoj1588[HNOI2002]营业额统计
bzoj1588[HNOI2002]营业额统计 题意: n天,每天得到一个值,要求输出每一天和这天得到的值相差最小的之前天得到的值与这个值的差的和.n不知道,不过O(nlog2n)可写. 题解: 说是 ...
- bzoj1588 [HNOI2002]营业额统计
1588: [HNOI2002]营业额统计 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 17931 Solved: 7391 [Submit][S ...
- 洛谷p2234/BZOJ1588 [HNOI2002]营业额统计
题目链接: 洛谷 BZOJ 分析: 好像没有什么好说的就是一个平衡树的板子--唯一要注意的就是这里要找的并不是严格的前驱和后继,因为如果找到之前某一天的营业额和它相等那么差就是0,所以我们仍然在结构体 ...
- bzoj1588[HNOI2002]营业额统计——双向链表
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1588 简单Splay.但用双向链表做.很好的思路. 1.(离线)按值排序,记下pre和nxt ...
- P2234 [HNOI2002]营业额统计
P2234 [HNOI2002]营业额统计 这题没有用splay写,罪过 就是找一下前驱与后继,然后判断一下这个值出现没出现过 判重就是最暴力的拿数组判断就可以了 只不过,值有可能为负数,所以整体平移 ...
- [HNOI2002]营业额统计 Splay tree入门题
[HNOI2002]营业额统计 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 [HNOI2002]营业额统计 Time Limit ...
- BZOJ 1588: [HNOI2002]营业额统计
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- 1588: [HNOI2002]营业额统计 - BZOJ
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- 洛谷P2234 [HNOI2002]营业额统计(01Tire树)
题目描述 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是 ...
最新文章
- 【必备】VSCode开发Angular的必备插件
- vivado中设置多线程编译
- 通宵加班的产品经理,为什么我不建议你买保险?
- 【摘转留用】35前要考虑的
- 【java】ConcurrentHashMap遍历 --- 弱一致性的迭代器(Iterator)实现原理
- GlusterFS分布式存储系统
- 配置ArcGIS Server使用Windows AD Windows集成身份认证
- 49.Linux/Unix 系统编程手册(下) -- 内存映射
- 逻辑函数的化简方法——数电第二章学习
- excel打不开html格式的文件,excel文件打不开提示格式无效怎么解决【图文】
- Nginx报错failed (13: Permission denied)
- python蓝牙连接测试_基于python实现蓝牙通信代码实例
- Java未来城市练习代码01
- SpringBoot的幕后推手...
- 程序员怎么做可以安全通过试用期
- c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...
- 装饰模式--私人定制冬装夏装
- python列表生成式
- 「 SLAM lesson-2.3 」SLAM数学描述、运动方程、观测方程
- 【维度建模】维度模型设计详细步骤
热门文章
- 数据结构之希尔排序图文详解及代码(C++实现)
- 代理模式(Proxy)简介
- html简单网页代码表白_表白网页代码,不会代码也可以操作,告别单身
- python封装类在当前文件中使用_name_下调用不了_python提示这个是什么原因!
- macbookpro合盖后掉电_macbookpro外接显示器,主机盖还是不盖?
- 让创新触手可及,阿里云容器服务 ACK 发行版开放免费下载
- matlab用lism求零输入响应,信号与系统matlab课后作业_北京交通大学讲解.docx
- centos cmake安装mysql_Centos安装mysql实例教程
- 图片一:单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)
- html事件机制,浅析JavaScript中的事件机制_基础知识