有一个物品每天的价格不同,每天可以选择以当天的价格买入或卖出问n天后最多挣多少钱以及最少的交易次数

做法是把每天的价格丢到队列里,如果当天的价格高于队列top就把top弹出,更新总收益,并把当天价格push两次,这里push两次目的是当天的价格可能不是最优比如1 2 10 11第二天卖出同时push两次进去,第三天卖出,第四天又卖出,相当于第二天作为跳板,同时又把第二天买入又卖出了。

处理交易次数也是一个问题,可以在队里的再多加一个属性记录这个节点是否是跳板

#include <bits/stdc++.h>using namespace std;
const int mx = 1e5+5;struct node{int val, type;bool operator <(const node b) const{if (val != b.val) return val > b.val;return type > b.type;}
};priority_queue <node> Q;
int main() {//freopen("1.in", "r", stdin);//freopen("1.out", "w+", stdout);int T;scanf("%d", &T);while(T--) {while (!Q.empty()) Q.pop();int n, sum = 0;long long ans = 0;node tmp;scanf("%d", &n);for (int i = 1; i <= n; i++) {int val;scanf("%d", &val);tmp.val = val;tmp.type = 2;if (!Q.empty() && val > Q.top().val) {//printf("val = %d Q.top().val = %d type = %d\n", val, Q.top().val, Q.top().type);ans += val - Q.top().val;sum += Q.top().type;tmp.type = 0;Q.pop(); Q.push(tmp);tmp.type = 2; Q.push(tmp);}else Q.push(tmp);}printf("%lld %d\n", ans, sum);}return 0;
}

hdu6438(优先队列)相关推荐

  1. Buy and Resell hdu-6438 贪心 优先队列

    题目链接:Problem - 6438 题面: 题意:你按顺序去n个城市,每个城市商品买入和卖出的价格一样,你可以用一天时间买入或者卖出,问最多可以获取多少钱,已经最少的天数 思路:在每个位置处贪心寻 ...

  2. 优先队列的应用 C++实现

    优先队列的应用 C++实现 优先队列可以用堆来实现, 堆底层可以用数组表示, 通过索引关系,可以表示成一颗二叉完全树 C++的STL提供了相应的容器适配器 包含在queue头文件中 下面通过一道题来看 ...

  3. ccf 交通规划(迪杰斯特拉优先队列模板)

    什么跟什么就是刘汝佳小白书迪杰斯特拉队列的优先队列法 #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f ...

  4. c++ std::priority_queue优先队列

    template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...

  5. 《程序设计解题策略》——1.6 利用左偏树实现优先队列的合并

    本节书摘来自华章计算机<程序设计解题策略>一书中的第1章,第1.6节,作者:吴永辉 王建德 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 利用左偏树实 ...

  6. 排序(一)归并、快排、优先队列等(图文具体解释)

    排序(一) 0基础排序算法 选择排序 思想:首先,找到数组中最小的那个元素.其次,将它和数组的第一个元素交换位置.再次.在剩下的元素中找到最小的元素.将它与数组的第二个元素交换位置. 如此往复,直到将 ...

  7. MYSQL实现ORDER BY LIMIT的方法以及优先队列(堆排序)

    一.MYSQL中的LIMIT和ORACLE中的分页 在MYSQL官方文档中描述limit是在结果集中返回你需要的数据,它可以尽快的返回需要的行而不用管剩下的行, 在ORACLE中也有相关的语法比如 1 ...

  8. 373. Find K Pairs with Smallest Sums (java,优先队列)

    题目: You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Def ...

  9. 暑期集训4:栈,树,优先队列 例 :  UVA - 514 ​​​​​​​​​​​​​​

    2018学校暑期集训第四天--栈,树,优先队列 例题  --   UVA - 514 Rails There is a famous railway station in PopPush City. ...

  10. pku 1724 ROADS BFS +优先队列

    http://poj.org/problem?id=1724 题意: Bob现在有的钱数为k,他想从城市1到城市n,给出m条连接两个城市的有向边,并且给出路的长度w,和经过这条路要交的钱数c.问Bob ...

最新文章

  1. Java和js常用表达式
  2. Oracle存储结构_文件
  3. Python - @property 方法变属性
  4. 【牛客 - 188C】水图(bfs树的直径,思维)
  5. python字符串计算加减乘除代码_Python 70行代码实现简单算式计算器解析
  6. 【Flink】Flink连接prometheus报错 IOException :Response code formxxx/metrics/job/rule
  7. Java蓝桥杯——逻辑推理练习题
  8. AppFuse 2.1的安装运行步骤------利用Maven构建appfuse
  9. 日本互联网 20 年沧桑路
  10. Java服务器开发之搭建游戏基础框架
  11. python模拟火车订票系统_Python-模拟火车票12306网站登陆
  12. 密码编码学与网络安全———原理与实践(第八版)第三章笔记
  13. 怎样转载csdn文章
  14. 湘潭大学java实验
  15. float gpu 加速_(总结篇)使用 MATLAB GPU 加速计算|MATLAB 并行计算与分布式服务器|MATLAB技术论坛...
  16. 使用r语言进行excel表格的分类与汇总
  17. win7安装Cajviewer后,打开文档,目录注释乱码问题解决
  18. vue3 静态图片 或者 css等 import 报错 Cannot find module ‘xxxx‘ or its corresponding type de
  19. (面试---西安立辰远景公司)
  20. MySQL load data 快速导入大批量数据

热门文章

  1. DGIOT物联网平台简介
  2. 阿里云 杭州 ARM 云服务器性能评测
  3. PostgreSQL和MySQL的性能对比实验
  4. 1区SCI潜力刊,中科院分区即将更新,有望冲击2区
  5. MatlabR2012a 显示使用过期的注册文件破解(.lic)
  6. 修真院教学模式四大体系之职业素养
  7. ctf-web入门-php特性
  8. h5 个推厂商消息 离线消息推送
  9. (转)windows 7兼容软件列表搜集加转帖
  10. 工厂利用计算机系统实现温度调节,超星尔雅短视频的拍摄与制作完整答案