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

题目

题意:

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);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Service fabric + Ocelot + Identity Server4 + 52ABP 的案例展示

10.24-27 大会Microsoft Tech Summit 2018 在上海举办&#xff0c;我 有幸受邀成为这场大会的讲师。Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行&#xff0c;这也会是国内举办的最后一届 Tech Summit&#xff0c;2019 年开始会以 Micr…

【网络流】植物大战僵尸(P2805)

正题 P2805 题目大意 在一个nmn\times mnm的平面上有若干植物&#xff0c;每个植物有其攻击集合&#xff0c;吃掉一个植物要先吃掉该植物右边的所有植物&#xff0c;且该植物不能在任何一个植物的攻击集合内&#xff0c;吃掉后有贡献ai,ja_{i,j}ai,j​&#xff0c;问你最大贡…

YbtOJ#763-攻城略池【线段树合并】

正题 题目链接:http://www.ybtoj.com.cn/problem/763 题目大意 给出nnn个点的一棵树&#xff0c;每个di0d_i0di​0的点每秒会产生一个士兵往根节点走&#xff0c;走到一个节点让一个节点did_idi​减一&#xff08;为000就不管&#xff09;。 求需要多久才能让所有点的ddd值变…

ARC106——E - Medals

E - Medals 首先看到这题看不出是一个匹配的题大佬题解 把每一个工人和每一天看成一个二分图&#xff0c;如果某个工人在某天工作&#xff0c;那么两者存在边&#xff0c;现在问题转化成至少需要多少天&#xff0c;能够把nnn个工人全部匹配kkk次 显然天数可以二分&#xff0…

2020 CCPC网络赛 赛后感

第一次参加&#xff0c;做过去年19年网络赛的题&#xff0c;去年是四个水题稳做出&#xff0c;然后还有两个线段树和树状数组的题&#xff08;好像是&#xff09;&#xff0c;所以本来对这次网络赛挺有信心的&#xff08;去年好像四个题就能进,当然要手速快&#xff09;。 这次…

Feature Flag 功能发布控制

背景产品在新功能发布前&#xff0c;可能会采取小流量测试的方式&#xff0c;或者在确定方案前使用A/B测试来衡量。一般开发人员会跟运维同学合作&#xff0c;通过一些现有平台切换机器或者流量来实现。本文介绍了另外一种简便的方式&#xff0c;并解释了其在持续集成上的应用&…

P4542-[ZJOI2011]营救皮卡丘【费用流,Floyd】

正题 题目链接:https://www.luogu.com.cn/problem/P4542 题目大意 给出n1n1n1个点mmm条边的无向图&#xff0c;kkk个人开始在000号点&#xff0c;一个人进入iii号点之前必须要有人经过i−1i-1i−1号点&#xff0c;求第一个人进入nnn号点时所有人的最短移动距离和。 1≤n≤150…

【线段树】GSS5 - Can you answer these queries V(luogu-SPOJ 2916)

正题 luogu-SPOJ 2916 题目大意 给你一个序列&#xff0c;有若干询问&#xff0c;每次给出左右端点的区间&#xff0c;问你最大字段和 解题思路 用线段树维护区间信息&#xff0c;询问的区间如果有交则分类讨论求解 code #include<cstdio> #include<cstring> #…

SmartSql 动态代理仓储

SmartSql源码&#xff1a;https://github.com/Ahoo-Wang/SmartSql1|1简介动态代理仓储(SmartSql.DyRepository)组件是SmartSql非常独特的功能&#xff0c;它能简化SmartSql的使用。对业务代码除了配置几乎没有侵入。可以说使用SmartSqlContainer是原始方法&#xff0c;而DyRepo…

HDU 6889 Graph Theory Class(CCPC网络赛)

hdu 6889 传说中的人均min25 题意&#xff1a; n个点的完全图&#xff0c;边权为lcm(i1,j1)&#xff0c;求mst&#xff08;最小生成树&#xff09; 题解&#xff1a; 我一开始以为是推公式&#xff0c;毕竟数据范围这么大&#xff0c;但是自己画图来看看mst的情况 注意求lc…

Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据

本来这篇文章在昨天晚上就能发布的&#xff0c;悲剧的是写了两三千字的文章居然没保存&#xff0c;结果我懵逼了。今天重新来写这篇文章。今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式。作者&#xff1a;依乐祝原文地址&#xff1a;https://www.cnblog…

【线段树】蝴蝶与花(P6859)

正题 P6859 题目大意 给你一个由1,2组成的序列&#xff0c;要求完成写下列操作&#xff1a; 修改一个数查找一段区间&#xff0c;使其区间和为s&#xff08;输出左端点最小的一组&#xff09; 解题思路 用线段树来维护该序列&#xff0c;对于每次查询&#xff0c;先找到从1…

YbtOJ#912-神秘语言【结论,欧拉定理】

正题 题目链接:http://www.ybtoj.com.cn/problem/912 题目大意 给出L,RL,RL,R&#xff0c;求有多少长度在[L,R][L,R][L,R]之间的字符串满足依次取出所有偶数位置的放在最前面后&#xff0c;与原字符串相同。字符集是所有小写字母。 1≤Q≤5,1≤L≤R≤1010,R−L≤51041\leq Q\…

path hdu6705

题意&#xff1a; 一个有向加权图&#xff0c;问所有路径汇中第k小的路径长度是多少&#xff1f; 注意一个边可以反复走多次 题解 做法参考 我们可以利用优先队列来做 利用优先队列实现每次所取为最短边 我们假设一条路是从u—>v,路径和为sum&#xff0c;u->v是u的所以…

.NET Core实践系列之SSO-跨域实现

前言接着上篇的《.net core实践系列之SSO-同域实现》&#xff0c;这次来聊聊SSO跨域的实现方式。这次虽说是.net core实践&#xff0c;但是核心点使用jquery居多。建议看这篇文章的朋友可以先看上篇《.net core实践系列之SSO-同域实现》做一个SSO大概了解。源码地址&#xff1a…

P2150-[NOI2015]寿司晚宴【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P2150 题目大意 将2∼n2\sim n2∼n选出一些分成两个集合&#xff0c;要求这两个集合中没有一对数不是互质的。求方案数对ppp取模 2≤n≤500,1≤p≤10102\leq n\leq 500,1\leq p\leq10^{10}2≤n≤500,1≤p≤1010 解题思路 数…

ABC181——F - Silver Woods

现在时间太少了&#xff0c;只能把自己不会的题补一下&#xff0c;会的题就不写了 F - Silver Woods 显然可以二分圆的半径&#xff0c;那么现在问题转化成判断半径为rrr的圆是否能够满足题意。 考虑什么情况下该半径的圆不能通过这些点。尝试用并查集维护一些关系 如果两个…

【树链剖分】洛谷树(P3401)

正题 P3401 题目大意 给你一棵树&#xff0c;让你进行以下操作 修改一条边的边权查询一条路径的所有子路径异或值的和 解题思路 记下所有点到根节点的路径亦或值&#xff0c;那么查询就是所有点对的异或值之和 因为边权<1024&#xff0c;最多只有10位&#xff0c;所以可…

牛客练习赛70 重新排列

来源&#xff1a;牛客网&#xff1a; 文章目录重新排列题解&#xff1a;代码&#xff1a;重新排列 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 牛牛有个很喜欢的字符串”…

.NET 源代码库指南

微软.NET开发团队在博客上&#xff08;https://blogs.msdn.microsoft.com/dotnet/2018/10/15/guidance-for-library-authors/&#xff09;发布了.NET Library Guidance的第一个版本。这是一系列全新的文章&#xff0c;指导你为.NET创建高质量代码库。该指南包含我们已确定的适用…