考虑股票市场,一共有n天。
对于第i天,B君知道股票的价格是每单位a[i]元
在每一天,B君可以选择买入一个单位的股票,卖出一个单位的股票,或者什么都不做。
刚开始B君有无穷多的钱,但是没有任何股票。
问n天之后B君最多可以赚多少钱。
(1 <= n <= 200000)
(1 <= a[i] <= 10000)

收起

输入

第一行一个整数n表示天数。
接下来一行n个整数,表示每天的价钱。

输出

一行一个整数表示最多可以赚的钱数。

输入样例

9
10 5 4 7 9 12 6 2 10

输出样例

20

分析:

这题的解法比较妙,这题最大的限制就是当前有一个最小值:x,你无法O(1)确定y,只能循环的走一遍,但肯定会超时,这里有一个很巧妙的解决方法,

比如:

1 4 10 3

直接选1买10卖是最好解决方法

或者还有一个方法: 1买 4卖 4买 10卖(当然在题意中是不合法的,但代价与1买10卖

所以我们用一个优先队列维护最小值,只要遇到比最小值大的值y,就把最小值剔除,压入两遍y。

#include<bits/stdc++.h>
using namespace std;
#define N 200005
typedef long long ll;
priority_queue <int, vector<int>, greater<int>> q;
int main()
{ll n;while (scanf("%lld", &n) != EOF){ll sum = 0;while (!q.empty()){q.pop();}ll num;while (n--){scanf("%lld", &num);if (!q.empty()&&num > q.top()) {sum += num - q.top(); q.pop();q.push(num);q.push(num);}elseq.push(num);}printf("%lld\n", sum);}
}

51nod 2206 低买高卖codeforces867E Buy Low Sell High 贪心+优先队列相关推荐

  1. 2022-6-5 括号之价,最长配对,梦中岛之路,小Biu的旅行,最小正子段和,小b和排序,顺子,重排列得到2的幂,重排列,和为K的倍数,低买高卖,小b删列

    1. 括号之价 [栈] 小Y上数据结构课的时候摸鱼,听到老师在讲用栈做括号匹配,于是乎边随意写了一个合法的括号序列.但是光是写括号太无聊了,他现在想知道这个括号序列的价值.他是这样定义一个括号序列的价 ...

  2. 【LeetCode+51nod】股票低买高卖N题

    [121]Best Time to Buy and Sell Stock (2018年11月25日重新复习) 给一个数组代表股票每天的价格,只能有一次交易,即一次买入一次卖出,求最大收益. 题解:用一 ...

  3. python股票网格交易法详解_股票最全“低买高卖”网格交易大法,值得收藏!

    网格交易法,可以简单理解为在既定网格中实行"跌买涨卖".首先需要制定一个[网格系统],主要包括网格格数.网格密度.最大压力价格和最小支撑价格四大要素.当标的价格跌破一个网格密度时, ...

  4. 唯一做到“低买高卖”的指标——KDJ,值得散户读10遍!

    一.何为KDJ? 随机指标KDJ是以最高价.最低价及收盘价为基本数据进行计算,得出的K值.D值和J值分别在指标的坐标上形成的一个点,连接无数个这样的点位,就形成一个完整的.能反映价格波动趋势的KDJ指 ...

  5. 一分钟学会看k线图_1分钟学会看K线请笑纳70种经典K线组合形态,绝对干货,轻松低买高卖!...

    (本文由公众号越声攻略(yslc688)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) K线是最真实的盘面语言,不同的形态有不同的含义,是广大操盘手必备的交易决策工具,也是广大 ...

  6. HDU 6438 网络赛 Buy and Resell(贪心 + 优先队列)题解

    思路:维护一个递增队列,如果当天的w比队首大,那么我们给收益增加 w - q.top(),这里的意思可以理解为w对总收益的贡献而不是真正获利的具体数额,这样我们就能求出最大收益.注意一下,如果w对收益 ...

  7. CodeForces - 867E Buy Low Sell High (贪心 +小顶堆)

    https://vjudge.net/problem/CodeForces-867E 题意 一个物品在n天内有n种价格,每天仅能进行买入或卖出或不作为一种操作,可以同时拥有多种物品,问交易后的最大利益 ...

  8. 往哪里看低买高卖和利润之间

    如果你认为你只outlayed 500美元的你自己的钱最初你可以看到你刚交了100%回报你的钱.你的500美元已经变成了一个500美元的开放利润.请牢记在心,交易成本并没有被包括在这个例子.现在你可以 ...

  9. 专题突破二之优先队列、st表——,Running Median,Sequence,Buy Low Sell High,数据备份,超级钢琴,ZQC的手办

    文章目录 Running Median Sequence Buy Low Sell High [APIO/CTSC 2007] 数据备份 [NOI2010] 超级钢琴 「LibreOJ β Round ...

最新文章

  1. JSP实现大学生综合素质测评系统
  2. 数据库远程访问数据库服务器网站和端口问题
  3. 获取本地的json并展示
  4. c++STL算法基础
  5. java填写xls模板_Java 新建excle文件并填充模版内容
  6. 5个IO口实现25个按键的扫描,他做到了!堪称一绝!
  7. centos php支持yaf,CentOS环境下给PHP7.0安装yaf扩展
  8. [周赛第200场][Leetcode][第5477题][第5478题][JAVA][双指针][贪心]
  9. Crusher Django 学习笔记4 使用Model
  10. 获取触发事件的元素的ID
  11. c++11 线程的互斥量
  12. 4一20ma电流有源与无源区别_一文读懂有源信号、无源信号、干接点、湿接点
  13. 儿子:特训营归来,许三多算个屁!(转)
  14. MySQL安装问题 Starting the server 失败
  15. outlook邮箱显示一直启动中_outlook邮箱打不开一直在加载
  16. ...可变形参的使用
  17. 固定Java窗口的大小
  18. oracle配置文件(profile文件)
  19. JAVA 网络聊天程序设计与实现(附关键代码) 可群聊私聊发送图片
  20. 哈希表、红黑树、B树、B+树基础

热门文章

  1. FusionCharts Suite XT 3.18.0
  2. 【C语言】双引号中使用宏定义
  3. 计算机机房联合接地线用什么线,静电地板如何接地线?
  4. ignore文件的配置
  5. ubuntu屏幕截图快捷键
  6. 如何快速批量导入非Oracle DB格式的数据--sqlloader
  7. 宝宝患有眼球震颤有哪些危害?严重时可造成斜视和弱视!
  8. rom和ram的区别
  9. 阿里云服务器购买帮助说明文档
  10. 健康饮食小程序 毕业设计-附源码280920