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