HDU 6438 网络赛 Buy and Resell(贪心 + 优先队列)题解
思路:维护一个递增队列,如果当天的w比队首大,那么我们给收益增加 w - q.top(),这里的意思可以理解为w对总收益的贡献而不是真正获利的具体数额,这样我们就能求出最大收益。注意一下,如果w对收益有贡献,你会发现w入队了两次,这是因为这里的w可能会有两种可能:
1.当做中间价/最终卖出价
2.买入价
所以我们入队两个w,如果w是买入价,那么其中一个w作为中间价势必弹出,另一个w作为买入价;如果w是最终卖出价,那么两个w会一直待在队列里。
计算总数很简单,用map[i]表示以i为中间价还存在多少个,如果是中间价就不加数量。
记得开long long orz
参考:CodeForces - 867E Buy Low Sell High 贪心 + 优先队列
代码:
#include<cstdio> #include<queue> #include<map> #include<algorithm> #include<iostream> #define ll long long using namespace std; priority_queue<int, vector<int>, greater<int> > q; map<int, int> st; int main(){int T, n, w;scanf("%d", &T);while(T--){st.clear();while(!q.empty()) q.pop();scanf("%d", &n);ll num = 0, ans = 0;for(int i = 0; i < n; i++){scanf("%d", &w);if(!q.empty() && q.top() < w){if(st[q.top()] > 0){st[q.top()]--;}else{num += 2;}st[w]++;ans += w - q.top();q.pop();q.push(w);}q.push(w);}printf("%lld %lld\n",ans, num);}return 0; }
转载于:https://www.cnblogs.com/KirinSB/p/9536670.html
HDU 6438 网络赛 Buy and Resell(贪心 + 优先队列)题解相关推荐
- Buy and Resell(贪心好题!)
这个贪心可以说是很巧妙了. Buy and Resell Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ( ...
- HDU 5246 超级赛亚ACMer 【贪心】【STL版本二分】
超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 2019 ICPC中国邀请赛(南昌)暨国际丝绸之路程序设计竞赛-网络赛题解
以下所有AC题解程序来自"仙客传奇"团队. AC题数:10/13 ABCDHIJKLM A. PERFECT NUMBER PROBLEM 解题思路:先编写离线程序计算出最小的5个 ...
- hdu6438 Buy and Resell 买卖物品 ccpc网络赛 贪心
题目传送门 题目描述: 有n座城市,每座城市都可以对一个物品进行一次的买进或者卖出,可以同时拥有多个物品,计算利润最大值,并且交易次数要最少.(买入卖出算两次操作) 思路: 建立两个小根堆 优先队列, ...
- 2019CCPC网络赛 1002 HDU 6703(权值线段树)
2019CCPC网络赛 1002 HDU 6703(权值线段树) 思路:用权值线段树存题目给的数据后,2操作就是求权值线段树中大于等于k的部分中,靠近左端点的第一个大于r的值(这个求出来的只是原序列中 ...
- ACM练级日志:HDU 4735(ACM 成都网络赛) 重复覆盖与DLX
今天费了一下午+一晚上的劲,终于把重复覆盖问题给解决了.作为这算法的牺牲品的就是成都网络赛让我知道DLX这东西存在的那道题,HDU 4735.这也是第一次尝试独立对问题构造矩阵然后调用DLX得出结果的 ...
- HDU - 6438(贪心+思维)
链接:HDU - 6438 题意:给出 n ,表示 n 天.给出 n 个数,a[i] 表示第 i 天,物品的价格是多少.每天可以选择买一个物品,或者卖一个已有物品,也可以什么都不做,问最后最大能赚多少 ...
- 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]
1001 Buy and Resell 题目:有1-n个货物,可以在某个点buy,然后在后面的点resell,可以同时买多个,问最大的利润和最小的交易次数. 题解:模拟运算,前 i 天都是可以买的, ...
- Buy and Resell
题目链接: Buy and Resell 大致题意: 有n个城市, 在每个城市中你可以选择花费a[i]的价格买一个能量块, 也可以选择以a[i]的价格卖出一个能量块(前提是你要有能量块可以卖). 你会 ...
最新文章
- Linux驱动:TI达芬奇系列kernel中cup类型的判断,以cpu_is_ti81xx()为例
- JavaScript Bitwise NOT Operator
- 从零搭建Prometheus监控报警系统
- sentinel接入网关应用_阿里Sentinel整合Zuul网关详解
- spring(13)缓存数据
- 晨哥真有料丨太快得到是不是就不珍惜了?这锅,男生真的不背!
- 什么是web前端?Web前端好入门吗?
- ubuntu安装vsftpd遇到的问题
- TreeSet集合为什么要实现Comparable?
- Reading HTML content from a UIWebView
- 没有的功能,直接回答并不好
- 使用Apifox测试套件自动化测试接口
- 如何检测判断硅钢片性能牌号?
- 用计算机画频率分布直方图,频率分布直方图
- 【高数】极限运算法则+两个重要极限
- 魔兽争霸的历史(ZT)第二章
- 使用Flash在线制作头像
- 大蟒蛇python头像_Python微信好友头像大拼图案例
- 第六次前端培训(JavaScript)
- 微信小程序识别图片并提取文字_这款微信小程序可以批量图片转文字?识别准确率超高!...
热门文章
- SAP RETAIL - How to activate SAP Retail system
- MIT给人工智能“泼冷水”:AI创造性目前有限
- Facebook参与AI芯片设计大混战!
- 读了这篇文字,做年薪百万的NLP工程师
- 披上AI战衣的中国APP,正在让印度节节败退
- SAP MB1B + 313315做二步法货物移动报错-创建交货的数据不完全(客户)-
- 免费教材丨第49期:数学基础课程----漫画线性代数、微积分超入门
- 《数学之美》第27章 期望最大化算法
- CICC《城市大脑建设规范》标准建设启动会在京召开
- 光辉岁月:人工智能的那些人和事(1)