zoukankan      html  css  js  c++  java
  • Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0

    题意:一些股票的价格,我们可以选择买进卖出,但一天只有一个操作,问最大盈利

    思路:对于当天,如果卖出的话&&之前有比他小的,我们肯定是找个最小那天的买进,但又不知道现在卖是不是最赚的,所以我们可以用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 }
  • 相关阅读:
    idea安装破解
    项目中邮件发送
    (转)四种复制文件的效率高低
    备份
    关于时间
    转 累加含小数点的数据:parseFloat、toFixed等
    转 Java将PDF转换成图片
    (转)JAVA实现SFTP实例
    获取浏览器参数
    js 中日期转换
  • 原文地址:https://www.cnblogs.com/hhxj/p/7620207.html
Copyright © 2011-2022 走看看