题目

题意:

n个宝石,宝石的买入或卖出价格固定,一天只能到一个珠宝商店(从左到右),问最大利润是多少?在保证最大利润的同时最少交换次数是多少?

题解:

题目有两问:一个是求利润,一个是求次数
利润就是低价买高价卖就行
比如1 2 10,1的时候买,2的时候卖,2的时候买,10的时候卖,这样一共挣了1+8=9,但是如果我们1的时候买,10的时候卖也是挣9,而且次数还少一次
我们该如何记录最少次数?
利用优先队列
首先我们计算最大利润时就用第一个步骤,即1买2卖,2买10卖,当我们卖完一个宝石时就标记一下,若次元素再次出现在队首,就说明出现了1 2 10的情况。。然后pop原本,加入当前的(即弹出2,加入10),这样始终可以保持最佳
最后根据剩余标记情况计算交换次数
也就是每个宝石分为两个
其实我们要找的就是递增关系

代码:

#include<bits/stdc++.h>
#define ll long long
#define PII pair<int,int>
using namespace std;
const int N = 1e6+5;
const int mod = 1e9+7;
const int INF = 0x3f3f3f3f;
struct node{ll num,index;node(ll a,ll b){num = a;index = b;}friend bool operator < (node a,node b){if(a.num == b.num) return a.index < b.index; //从低到高(未标记的在前面) return a.num > b.num;//价格从高到低 }
};
priority_queue <node> q;
int main()
{ll t,p,i,j,k,n,x;cin>>t;while(t--){cin>>n;ll ans = 0,count = 0;for(i = 1;i <= n;i++){cin>>x;q.push(node(x,0)); node temp = q.top();if(x > temp.num)//如果卖出价钱比已买的最高价钱还高 {ans += x-temp.num;//卖出 q.pop();q.push(node(x,1));//标记后加入}}while(!q.empty()){if(q.top().index) count++;q.pop();}printf("%lld %lld\n",ans,count*2);}
}

Buy and Resell 2018中国大学生程序设计竞赛 - 网络选拔赛相关推荐

  1. 2018中国大学生程序设计竞赛-网络选拔赛题解

    以下所有AC题解程序来自"仙客传奇"团队. A. Buy and Resell AC的C++语言程序: #include<iostream> #include<c ...

  2. 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]

    1001 Buy and Resell  题目:有1-n个货物,可以在某个点buy,然后在后面的点resell,可以同时买多个,问最大的利润和最小的交易次数. 题解:模拟运算,前 i 天都是可以买的, ...

  3. 2018中国大学生程序设计竞赛 - 网络选拔赛

    传送门 A.HDU6438 Buy and Resell 题意 给你N天N个价格,每天都可以从1.买入一个,2.卖出一个,3.什么都不做,求最高获利 低买高卖问题,这题与其他的差距就是要在满足获利最多 ...

  4. 2017中国大学生程序设计竞赛 - 网络选拔赛 [1005 - CaoHaha's staff] 贪心

    题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1005&cid=779 题目大意:在一个二维坐标网格里画线,可 ...

  5. 2017中国大学生程序设计竞赛 - 网络选拔赛 [1003 - Friend-Grapht] 图论

    题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1003&cid=779 题目大意:给一个团队的关系图,问这个团 ...

  6. 字节跳动杯2018中国大学生程序设计竞赛-女生专场题解

    以下所有AC题解程序来自"仙客传奇"团队. A. 口算训练 题解链接: ABDFHK "字节跳动杯"2018中国大学生程序设计竞赛-女生专场 B. 缺失的数据范 ...

  7. 挑战程序设计竞赛_我系首次参加第六届中国大学生程序设计竞赛网络预选赛

    点击上方蓝字关注  「龙外信息工程系」 讲述有温度的故事    传递有态度的思想 2020年9月20日12时至17时,第六届中国大学生程序设计竞赛网络赛预选赛在杭州电子科技大学OJ成功举办,黑龙江外国 ...

  8. “字节跳动杯“2018中国大学生程序设计竞赛-女生专场

    A-口算训练 题目大意 判断区间[l,r]内的数组元素乘积是否为d的倍数 思路:分解质因数+二分(upper_bound.lower_bound) ==>若区间[l,r]中所有数的每一个质因数的 ...

  9. 字节跳动杯2018中国大学生程序设计竞赛-女生专场

    (6/11)施工施工... A.口算训练 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6287 题解给的根号的分解素因子,其实能够做到log,然后维护 ...

最新文章

  1. 中间件业务在网易轻舟容器平台的性能调优实践
  2. JVM(三)对象的生死判定和算法详解
  3. python和云计算_云计算和python区别
  4. plsql tables 没有表_技术分享 | 在磁盘上查找 MySQL 表的大小
  5. Localdatetime的坑
  6. “跟技术Leader聊了10分钟,我就猜到下周要发生重大宕机事故!”
  7. 勿让“天地图”成绿坝第二
  8. FPGA之JESD204B接口——总体概要 实例上
  9. linux命令离线手册下载,linux 命令速查手册全集下载
  10. [ABAP] BTE增强查找实施方法
  11. MFC-CString
  12. 可供软件测试练习的在线网站、被测系统——整理中
  13. matlab用jc法计算可靠度,用MATLAB实现JC法计算结构可靠度程序
  14. 任天堂媒体峰会召开,众多新作现场试玩
  15. 4.1 什么是脚手架(CLI)
  16. 2021年最近超火的外卖cps小程序
  17. Linux克隆Mac地址一样,详解Linux系统中网卡MAC地址克隆方法
  18. 纯CSS输入区域下划线
  19. 计算机发展方向图,计算机地图制图原理、特点及发展趋势
  20. 安卓hook解密教程

热门文章

  1. 干货|机器学习零基础?不要怕,吴恩达课程笔记第三周!逻辑回归与正则
  2. 明天放假,我放价!一个国庆假期教你学会数学建模
  3. mysql 1054 42s22_MySQL ERROR 1054(42S22)
  4. bo耳机h5使用说明_真香时刻·性价比大旗——红米AirDots2 TWS真无线耳机体验测评...
  5. linux改环境语言,linux下改变语言环境
  6. android 监听布局改变,Android通过监听最外层布局的改变监听键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);...
  7. python数据字符_python数据清洗系列之字符串处理详解
  8. phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它
  9. c++tcp接收文件缓存多大合适_网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?...
  10. circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业