CF865D Buy Low Sell High

CF865D Buy Low Sell High

Buy Low Sell High

题目
已知接下来N天的股票价格,每天你可以买进一股股票,卖出一股股票,或者什么也不做.N天之后你拥有的股票应为0,当然,希望这N天内能够赚足够多的钱.

分析

  • 假如我们当前这个aj作为某天卖出,那么一定是和前面的还没有用的最小的ai来进行配对,并且只有当aj>ai 时才进行配对,且得到利润为ajai,因此我们可以用一个堆记录哪些还没有用
  • 但是我们在这一天卖出不一定是最优的
  • 假象我们在这一天同时又买入了一个价值为val的股票,并在之后第k天卖出
  • 如果有ajai+akval=akai也就是val=aj的时候我们相当于撤销了在第j天卖出,转而在第k天卖出
  • 另外为什么当前最小的ai一定出现在最后的配对里呢?
  • 假设最终答案中不包含ai这一项
  • 假如也不包含aj(i<j)这一项,那么我们可以让它们配对,与当前答案是最右答案矛盾
  • 因为aiaj选择时最小的一项,所以它一定会跟ai配对
  • 如果是出现了像akaj这样的项,我们直接替换为akai答案只会变大,与答案的最优性矛盾
#include<bits/stdc++.h>
#define fo(i,a,b) for (ll (i)=(a);(i)<=(b);(i)++)
#define fd(i,b,a) for (ll (i)=(b);(i)>=(a);(i)--)
#define eb emplace_back
#define mk(x,y) make_pair((x),(y))
#define A puts("YES")
#define B puts("NO")
#define lc (o<<1)
#define rc ((o<<1)|1)
#define pi pair<ll,ll>
using namespace std;
typedef long long ll;
typedef double db;
const int N=5005;
const ll P=131;
const ll Q=13331;
const ll inf=1ll<<60;
const ll mo1=1e9+7;
const ll mo2=1e9+9;
const ll mo=998244353;
ll n,x,ans;
priority_queue<ll, vector<ll>, greater<ll>> q;
int main(){
//	freopen("data.in","r",stdin);

	scanf("%lld",&n);
	fo(i,1,n) {
		scanf("%lld",&x);
		if (!q.empty() && x>q.top()) {
			ans+=x-q.top();
			q.pop();
			q.push(x);
		}
		q.push(x);
	}
	printf("%lld",ans);


	return 0;
}
 
posted @   gan_coder  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2023-08-27 Educational Codeforces Round 119
  1. 1 青春コンプレックス 結束バンド
  2. 2 ギターと孤独と蒼い惑星 結束バンド
  3. 3 星座になれたら 結束バンド
  4. 4 恋のうた (feat. 由崎司) 鬼頭明里
  5. 5 月と星空 カノエラナ
  6. 6 Cagayake!GIRLS[5人Ver.] (TV size Ver.) 桜高軽音部
  7. 7 不可思議のカルテ 不可思議のカルテ
  8. 8 優しさの理由 ChouCho
青春コンプレックス - 結束バンド
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 樋口愛

作曲 : 音羽-otoha-

编曲 : 三井律郎

暗く狭いのが好きだった 深く被るフードの中

喜欢黑暗狭窄的地方 如被深深掩盖的兜帽之中

無情な世界を恨んだ目は どうしようもなく愛を欲してた

对眼中无情的世界恨之入骨 却无可救药地想得到爱

雨に濡れるのが好きだった 曇った顔が似合うから

雨に濡れるのが好きだった 曇った顔が似合うから

雨に濡れるのが好きだった 曇った顔が似合うから

喜欢被雨淋湿 因为这才符合我阴沉的脸

嵐に怯えてるフリをして 空が割れるのを待っていたんだ

假装着害怕暴风雨 又等待着天空的破裂

かき鳴らせ 光のファズで 雷鳴を 轟かせたいんだ

奏响吧 以光的法兹让雷鸣声轰鸣

打ち鳴らせ 痛みの先へ どうしよう! 大暴走獰猛な鼓動を

敲响吧 苦痛的前方该如何! 以这狂暴凶猛的心跳回应吧

悲しい歌ほど好きだった 優しい気持ちになれるから

悲しい歌ほど好きだった 優しい気持ちになれるから

悲しい歌ほど好きだった 優しい気持ちになれるから

尤为喜欢听忧伤的歌曲 因为会让心情变得平和下来

明るい場所を求めていた だけど触れるのは怖かった

渴求着明亮的地方 但是也害怕着触碰光明

深く潜るのが好きだった 海の底にも月があった

喜欢潜入深海之中 因为海底之下也有月亮

誰にも言わない筈だった が 歪な線が闇夜を走った

本来应该不会和任何人提起 但扭曲的线条却在黑夜里奔跑

かき鳴らせ 交わるカルテット 革命を 成し遂げてみたいな

奏响吧 这交响的四重奏 试着完成这革命

打ち鳴らせ 嘆きのフォルテ どうしよう? 超奔放凶暴な本性を

敲响吧 叹息的加强符该如何? 这奔放且狂暴至极的本性啊

私 俯いてばかりだ

私 俯いてばかりだ

私 俯いてばかりだ

我 一直低着头

それでいい 猫背のまま 虎になりたいから

那样就好 因为成为一只驼背的老虎正如我所愿啊

かき鳴らせ 光のファズで 雷鳴を 轟かせたいんだ

かき鳴らせ 光のファズで 雷鳴を 轟かせたいんだ

かき鳴らせ 光のファズで 雷鳴を 轟かせたいんだ

奏响吧 以光的法兹让雷鸣声轰鸣

打ち鳴らせ 痛みの先へ さあいこう 大暴走獰猛な鼓動を

敲响吧 向着苦痛的前方冲吧 这暴走凶猛的心跳

衝動的感情 吠えてみろ!

冲动的感情 咆哮吧!

かき鳴らせ

奏响吧

雷鳴を这雷鸣

点击右上角即可分享
微信分享提示