首页 > 其他分享 >「2025 - 寒假 - Day-2 提高笔记-反悔贪心」

「2025 - 寒假 - Day-2 提高笔记-反悔贪心」

时间:2025-01-22 19:22:06浏览次数:1  
标签:begin 反悔 int 2025 卖出 include Day 贪心

反悔贪心

贪心是按照一定顺序进行选择的思想,但是局部最优不等于全局最优,有的时候我们需要用到反悔贪心,看一道例题。

Buy Low Sell High

思路

我们发现不能简单的通过最小的股票或者最大的股票,又或是次大的股票进行操作。
这时,我们考虑一个问题,在 \(i < j < k\) 中,利润分别是什么?

  • 在 \(i\) 天买进,在 \(j\) 天卖出,利润为 \(p_j - p_i\)。
  • 在 \(j\) 天买进,在 \(k\) 天卖出,利润为 \(p_k - p_j\)。

我们可以采用反悔操作,即当在 \(p_j > p_i\) 时,说明 \(j\) 天有利可谋,我们就在 \(j\) 天同时买进和卖掉股票。但是我们的答案只记录赚的钱,于是当我们在 \(j\) 和 \(k\) 天都卖出的时候,利润为 \((p_k - p_j) + (p_j - p_i) = (p_k - p_i)\),则相当于在 \(i\) 天买入,在 \(k\) 天卖出。于是我们可以用小根堆维护该天前的能卖或者能反悔的压入堆。
可得以下代码:

#include<iostream>
#include<vector>
#include<stack>
#include<set>
#include<algorithm>
#define int long long
using namespace std;

int n;
int p,ans = 0;
multiset<int> q;

signed main(){
	cin >> n;
	for(int i = 1;i <= n;i ++){
		cin >> p;
		if(!q.empty() && *q.begin() < p){
			ans += (p - *q.begin());
			q.erase(q.begin());
			q.insert(p);//日后反悔
		}
		q.insert(p);//日后交易
	}
	cout << ans << '\n';
	return 0;
}

标签:begin,反悔,int,2025,卖出,include,Day,贪心
From: https://www.cnblogs.com/To-Carpe-Diem/p/18686637

相关文章

  • 2025年科技股七大主线
    2025年科技股七大主线 ......
  • 史上最强PDF工具-创建、编辑、加密、转换(PDF转word)、扫描和OCR-Adobe Acrobat Pro 202
    AdobeAcrobatPro是可跨多种设备使用的最全面、最现代的PDF解决方案。拥有25种PDF和电子签名工具。无论是企业办公、教育、法律还是个人使用,AdobeAcrobat都能提供高效、便捷、安全的文档处理体验。一、概述AdobeAcrobat是由Adobe公司开发的一款软件,它是用于创建、查......
  • JS-Web API -day04
    一、日期对象1.1实例化日期对象实例化:new关键字获得当前时间        constdata=newDate()获得指定时间        constdata1=newDate('2024-5-108:30:00')     1.2日期对象方法常见的时期对象方法:getFullYear()、getMonth()、g......
  • 2025年01月22日Github流行趋势
    项目名称:llm-course项目地址url:https://github.com/mlabonne/llm-course项目语言:JupyterNotebook历史star数:43588今日star数:304项目维护者:mlabonne,pitmonticone项目简介:一个课程,帮助你通过路线图和Colab笔记本进入大型语言模型(LLMs)的学习。项目名称:awesome-cursorrul......
  • 硝基甲苯之袭(2025牛客寒假算法基础集训营1)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 数值膨胀之美(2025牛客寒假算法基础集训营1)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();constintinf=0x3f3f3f3f;signedmain(){#ifdefGordenfreopen("in.txt&q......
  • 井然有序之衡(2025牛客寒假算法基础集训营1)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 2025新手小白第一次准备参加护网行动,需要准备什么?
    目录第一部分:了解护网行动的背景与目的1.1护网行动的背景1.2护网行动的目的1.3护网行动的主要内容第二部分:网络安全基础知识准备2.1网络安全概念2.2网络安全的常见威胁2.3网络安全防护......
  • 一气贯通之刃(2025牛客寒假算法基础集训营1)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();constintN=1e5+7;vector<vector<int>>e(N);signedmain(){#ifdefGor......
  • 2025全国特种作业操作证低压电工易错题练习
    本试题来源于安考星吊灯安装在桌子上方时,与桌子的垂直距离不少于1.5m。()A.正确B.错误答案:B由于异步电动机的转子绕组并不直接与电源相接,而是依据电磁感应来产生电动势和电流,获得电磁转矩而旋转,因此又称感应电动机。()A.正确B.错误答案:A我国正弦交流电的频率......