HDU6438 Buy and Resell 2018CCPC网络赛 -低买高卖-贪心经典题
(有任何问题欢迎留言或私聊 && 欢迎交流讨论哦
Catalog
Problem:Portal传送门
 原题目描述在最下面。
 出过很多次:51nodNOIP提高组贪心专题A,牛客寒假多校(不记得那场了),CodeforcesContest865D。
 低买高卖,每次只能买入或卖出一件商品,你买得起所有商品,问你最多盈利多少?
 ps:FZU2281 Trades是可以买入卖出许多件物品.
Solution:
 对于当前价格B而言,只要前面有比这个价格低的价格A,那么当前情况A买入B卖出一定盈利
 但是A买入B卖出不一定是最优解,所以为了有后悔药吃,就再push两个B进入优先队列,一个表示卖出,一个表示买入。
 每天都卖出,每次累加差值就可以了。累加很多个差分值肯定会得到最优解的。
 因为A买入B卖出B买入C卖出 和 A买入C卖出 效果一样
AC_Code:
#include<bits/stdc++.h>
#define mme(a,b) memset((a),(b),sizeof((a)))
using namespace std;
typedef long long LL;
const int INF = 0x3f3f3f3f;
int main() {
  int tim;
  int n;
  scanf("%d", &tim);
  while(tim--){
  scanf("%d",&n);
    priority_queue<pair<int,int>>q;
    LL ans = 0;
    int tot = 0;
    for(int i = 0, x; i < n; ++i){
      scanf("%d",&x);
      q.push(make_pair(-x,1));//买入
      q.push(make_pair(-x,2));//卖出
      LL tmp=x+q.top().first;
      if(q.top().second == 1)tot+=2;//对于实际交易,买入一次必对应一次卖出
      ans += tmp;
      q.pop();
    }
    printf("%lld %d\n",ans,tot);
  }
  return 0;
}
####Problem Description:

HDU6438 Buy and Resell 2018CCPC网络赛 -低买高卖-贪心经典题的更多相关文章
- 【LeetCode+51nod】股票低买高卖N题
		
[121]Best Time to Buy and Sell Stock (2018年11月25日重新复习) 给一个数组代表股票每天的价格,只能有一次交易,即一次买入一次卖出,求最大收益. 题解:用一 ...
 - hdu6438   Buy and Resell  买卖物品      ccpc网络赛  贪心
		
题目传送门 题目描述: 有n座城市,每座城市都可以对一个物品进行一次的买进或者卖出,可以同时拥有多个物品,计算利润最大值,并且交易次数要最少.(买入卖出算两次操作) 思路: 建立两个小根堆 优先队列, ...
 - 2018中国大学生程序设计竞赛 - 网络选拔赛 hdu6438 Buy and Resell 买入卖出问题 贪心
		
Buy and Resell Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
 - 2018CCPC网络赛
		
A - Buy and Resell HDU - 6438 The Power Cube is used as a stash of Exotic Power. There are nn cities ...
 - hdu6438 Buy and Resell
		
多少年不写题了... (我把每一天看作是一个商品,第i天是第i个商品) 一开始看了半天看出来一个性质:买的所有商品中最贵的不会比卖的所有商品中最便宜的贵,然后似乎没有什么用处.... 所以最后还是看题 ...
 - HDU6438 Buy and Resell 解题报告(一个有趣的贪心问题的严格证明)
		
写在前面 此题是一个很容易想到的贪心题目,但是正确性的证明是非常复杂的.然而,目前网上所有题解并未给出本题贪心算法的任何正确性证明,全部仅停留在描述出一个贪心算法.本着对算法与计算机科学的热爱(逃), ...
 - hdu6440 Dream 2018CCPC网络赛C    费马小定理+构造
		
题目传送门 题目大意: 给定一个素数p,让你重载加法运算和乘法运算,使(m+n)p=mp+np,并且 存在一个小于p的q,使集合{qk|0<k<p,k∈Z} 等于集合{k|0<k&l ...
 - hdu6446  Tree and Permutation 2018ccpc网络赛  思维+dfs
		
题目传送门 题目描述:给出一颗树,每条边都有权值,然后列出一个n的全排列,对于所有的全排列,比如1 2 3 4这样一个排列,要算出1到2的树上距离加2到3的树上距离加3到4的树上距离,这个和就是一个排 ...
 - 2018CCPC网络赛A(优先队列,思维)
		
#include<bits/stdc++.h>using namespace std;priority_queue<pair<int,int>>q;int main ...
 
随机推荐
- 用php 生成 excel 表格
			
//引用新建对象require "../phpexcel/Classes/PHPExcel.php"; $excel = new PHPExcel(); 建表格 //Excel表格 ...
 - NOIP模拟测试29(A)
			
T1: 题目大意:有一张有向无环图,第$x$次经过边$i$的代价为$a_ix+b_i$,最多经过$c_i$次,起点为1,$s$个点可作为终点,求走$k$次的最小代价. 我们新建一个汇点,将所有可做为终 ...
 - Shell基础(四):字符串截取及切割、字符串初值的处理、基使用Shell数组、expect预期交互、使用正则表达式
			
一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处 ...
 - 2-Harris角点检测
			
1. 何为角点? 下面有两幅不同视角的图像,通过找出对应的角点进行匹配. 再看下图所示,放大图像的两处角点区域: 我们可以直观的概括下角点所具有的特征: >轮廓之间的交点: >对于同一场景 ...
 - 学 Win32 汇编[20]: 洞察标志寄存器
			
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NT IOPL OF DF IF TF SF ZF AF PF CF 未使用 嵌套标志 I/O权限标志占2位 溢出标志 方向 ...
 - Linux网卡驱动(4)—DM9000网卡驱动程序完全分析
			
1.硬件连接 mini2440开发板上DM9000的电气连接和mach-mini2440.c文件的关系 其中片选信号AEN使用了nGCS4,所以网卡的内存区域在BANK4,也就是从地址0x200000 ...
 - (转)OpenFire源码学习之七:组(用户群)与花名册(用户好友)
			
转:http://blog.csdn.net/huwenfeng_2011/article/details/43413651 Group 在openfire中的gorop——组,也可以理解为共享组.什 ...
 - 关于RF做自动化大致流程的梳理
			
RF只是一个框架,类似于单元测试框架,可以实现对用例的有效管理.结合其它第三方库,可以进行,接口,数据库,APP的自动化测试.结合JENKINS,还可以进行有效的持续集成. 本文不讲调用第三方库的哪些 ...
 - 20、formAdd,javascript实现动态添加
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - tomcat 相关异常
			
端口没有被占用却提示Several ports (8005, 8080, 8009) required by Tomcat??? 解决办法:1.运行cmd进入命令行界面:2.运行命令: netsh w ...