题意描述

已知接下来天股票价格,你每天可以买入一股,卖出一股,或者不做任何操作,求收益最大值。

解题思路

1.动态规划

容易想到这种dp算法。设表示在第天持有股时手里最多的钱。对于,可以由卖出或不操作得到;对于,可由买入、卖出以及不做操作得到。

于是状态转移方程

时间复杂度,滚动数组优化后空间复杂度

明显无法通过,但没有办法优化dp算法,于是我们换一个思路。

2.反悔贪心

一般的贪心思想是这样的:每一天如果前面有比当天价格小的,在能买的且价格最小的那天买入一股并在这天卖出。

但是这个思路有问题,比如下面这组数据

3
1 2 3

根据刚才的思路,我们会在第2天发现第1天价格低,于是在第1天买入股票并在第二天卖出,第3天不进行操作。但事实上,第1天买入并在第3天卖出会优于这种方案。

于是就要让贪心能够“反悔”。

注意到如果对股票买了又卖,相当于没有操作。所以可以把卖出的股票价格也放入候选之中(当然,每天的价格都会放入候选,表示以在当天买入,所以卖出的股票价格会被加入候选两次)。那么后面从候选中选择这天股票的意义

  • 被选择0次,这天卖出股票。
  • 被选择1次,这天不进行操作,
  • 被选择2次,这天买入股票,被假设为这天卖出的股票在后面的一天卖出。

用堆维护候选中最小价格。

时间复杂度,空间复杂度

示例代码

#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N=3e5+5;int n;
LL a[N];
priority_queue<LL,vector<LL>,greater<LL> > pq;
LL res;int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%lld",&a[i]);for(int i=1;i<=n;i++){if(!pq.empty()&&pq.top()<a[i]){res+=a[i]-pq.top();pq.pop();pq.push(a[i]);}pq.push(a[i]);}printf("%lld\n",res);return 0;
}

总结

反悔贪心,可以通过做差实现。

低买高卖(CF865D)题解相关推荐

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

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

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

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

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

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

  4. 51nod 2206 低买高卖codeforces867E Buy Low Sell High 贪心+优先队列

    考虑股票市场,一共有n天. 对于第i天,B君知道股票的价格是每单位a[i]元 在每一天,B君可以选择买入一个单位的股票,卖出一个单位的股票,或者什么都不做. 刚开始B君有无穷多的钱,但是没有任何股票. ...

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

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

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

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

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

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

  8. 脑力风暴之小毛驴历险记(3)---低进高出的小鸡(上)

    极富盛名的面试题 此时恰逢双节将至,到处多多少少都有一点的气氛,虽不至于欢天喜地,逢面就谈论的节日计划到处都能听到的.小毛驴初来乍到,倒也渐渐熟悉了此地风俗.今天闲了下来,几块月饼下肚,便觉得有点胃胀 ...

  9. kdj超卖_一个判断股票超买超卖现象的指标——KDJ,简单明了,准确且省心

    KDJ是一种指示"超买超卖"的指标,跟MACD不同,这类指标的最大特点是有上下的界限. KDJ指标,是由K,D,J三根线,以及0-100的数轴线组成的,公式我就不写了,参数一般是( ...

  10. kdj超卖_【教你一招】KDJ超买超卖指标

    原标题:[教你一招]KDJ超买超卖指标 来源:K线密码 KDJ是一个超买超卖指标,对股价高位低位的研判.根据KDJ的取值,我们将KDJ区域分为 1.超买区:K.D.J这三值在20以下为超卖区,是买入信 ...

最新文章

  1. 利用人工智能(Magpie开源库)给一段中文的文本内容进行分类打标签
  2. docker搭建ssr
  3. Chrome常用快捷键整理汇总
  4. “非”天才女程序员的人生
  5. 016-Spring Boot JDBC
  6. vbs 连oracle 负载均衡,(原)QTP中用VBS调用PLSQL并执行相关语句
  7. 光线求交加速算法:kd-树
  8. QT5开发及实例学习之二信号和槽机制
  9. MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析
  10. 如何在Linux,Ubuntu,CentOS上安装Java 14
  11. CRT、ATL、MFC 三者介绍和关系
  12. CS224N刷题——Assignment1.4_情感分析
  13. Android 实现全屏、无标题栏
  14. copying mysql status_MySQL主从复制延迟原因及处理思路
  15. 云南满泽生物科技有限公司 满泽玛卡玛咖精片 东革阿里 奶昔
  16. 实验1 VLAN负载均衡
  17. 想对可以使用的adblock插件感谢!!
  18. 能领拼多多优惠券的app
  19. JavaWEB10:Request、Response
  20. 工程部署: 低算力平台模型性能的优化

热门文章

  1. 我的微型工作流引擎-功能解析及API设计
  2. Java 文件下载名称为空问题解决 Access-Control-Expose-Headers
  3. 火狐浏览器不能看超酷视频_您可能不知道的技术超酷的打字稿运算符
  4. 教师计算机水平比赛评分表,信息化教学设计比赛评分标准.doc
  5. 戴尔服务器换盘及raid创建操作手册
  6. GDAL 标记图像连接区域
  7. java(问题解决) 类****是公共的,应在名为****的文件中声明
  8. 根据dll生java对象_Java中调用C/C++生成的DLL
  9. C语言练习实例14——将一个正整数分解质因数
  10. 服务器上如何修改伪静态,服务器如何设置伪静态