Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) E. Buy Low Sell High(代码片
Posted 早知如此绊人心,何如当初莫相识。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) E. Buy Low Sell High(代码片相关的知识,希望对你有一定的参考价值。
题意:一些股票的价格,我们可以选择买进卖出,但一天只有一个操作,问最大盈利
思路:对于当天,如果卖出的话&&之前有比他小的,我们肯定是找个最小那天的买进,但又不知道现在卖是不是最赚的,所以我们可以用multiset,这个和set类似,但可以存储相同的数字,并排序
所以我们删掉那个最小的,添加2个当前的,一个当中是中转,一个当作是数字,
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 multiset<int > s; 5 multiset<int >::iterator it; 6 7 int main(){ 8 int n; 9 cin>>n; 10 ll sum=0; 11 for(int i=1;i<=n;i++){ 12 int x; 13 scanf("%d",&x); 14 if(!s.empty()&&x>*s.begin()){ 15 sum+=(x-*s.begin())*1LL; 16 s.erase(s.begin()); 17 s.insert(x); 18 s.insert(x); 19 } 20 else s.insert(x); 21 } 22 cout<<sum<<endl; 23 return 0; 24 }
以上是关于Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) E. Buy Low Sell High(代码片的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)
Codeforces Round #437 C. Ordering Pizza
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2)
Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0 - Round 2) E