因为每增加一个订单,时间是会增加的,所以先按截止时间d排序,

这样的话无论是删除一个订单,或者增加订单,都不会影响已经选好的订单。

然后维护一个已经选好的订单的大根堆(优先队列),如果当前无法选择的话,

那么尝试和之前花费时间最长的交换。如果qi<qj的话,交换之后花费的时间更短且截止时间di更长,情况不会比没交换更糟·。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 8e5+5;
struct Cus
{int q,d;bool operator < (const Cus& x) const {return q < x.q;}
}P[maxn];bool cmp(const Cus& x, const Cus& y) { return x.d < y.d; }
priority_queue<Cus> Q;int main()
{//freopen("in.txt","r",stdin);int T; scanf("%d",&T);while(T--){int n; scanf("%d",&n);for(int i = 0; i < n; i++)scanf("%d%d",&P[i].q,&P[i].d);sort(P,P+n,cmp);int cur = 0;for(int i = 0; i < n; i++){if(P[i].q + cur <= P[i].d) Q.push(P[i]), cur += P[i].q;else {if(Q.size() && P[i].q < Q.top().q ) {cur += P[i].q - Q.top().q;Q.pop(); Q.push(P[i]);}}}printf("%d\n",Q.size());while(Q.size()) Q.pop();if(T) putchar('\n');}return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4706185.html

UVA 1153 Keep the Customer Satisfied 顾客是上帝(贪心)相关推荐

  1. uva 1153—— Keep the Customer Satisfied

    题意:有n个工作,已知每个工作的开始时间和结束时间,问最多能完成多少工作. 思路:贪心.要想使得最后的结果最佳,那么开始的晚的,要在最后来做.在此基础上,需要保证先做开始的早的(需要用优先队列来维护) ...

  2. UVa 1153 Keep the Customer Satisfied 【贪心 优先队列】

    题意:给出n个工作,已知每个工作需要的时间last,以及截止时间end,(必须在截止时间之前完成)问最多能够完成多少个工作 首先预处理,将这n件任务按照截止时间从小到大排序 然后用一个cur记录当前做 ...

  3. UVa1153 Keep The Customer Satisfied(贪心)

    问题:有 n个订单,每个订单有两个属性,数量 q吨和交付时间d,其中每生产一吨铁需要1个单位时间.要求拒绝的订单数最少. 思路:对于两个订单(qa,da),(qb,db),如果qa>qb,da& ...

  4. uva 1614奇怪的股市(归纳法证明,贪心)

    uva 1614奇怪的股市(归纳法证明,贪心) 输入一个长度为n的序列a,满足\(1\le a_i\le i\),要求确定每个数的正负号,使得所有数的总和为0.例如a={1, 2, 3, 4},则4个 ...

  5. 当创新面对“顾客是上帝”和“市场调查”之类

    "顾客是上帝 "这一句广为传播的广告词,其实是用来忽悠顾客 的.顾客 要是相信了这句话,不但当不上上帝 ,就离那位穿"新衣"的皇帝也不远了.而产品设计人员要是相 ...

  6. LA 3507 Keep the Customer Satisfied (Greedy)

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  7. Keep the Customer Satisfied

    题意: n个订单,每个订单有完成需要的天数,和限制的天数,求最多能完成多少订单 分析: 先按限制日期升序排列,若当前订单不能完成,和上面已选中的订单中需要天数中最大的比较,若比它小,则替换他. #in ...

  8. POJ 2786 Keep the Customer Satisfied 贪心

    这题刚开始想成了背包的问题,,后来一直WA,,不知道为什么,然后想了一下这题使用背包时间复杂度也过不去,所以还是要用贪心 首先这里构建一个优先队列来存储当前决定要接受的订单中的轮子个数,对于最后期限从 ...

  9. 【POJ】2786-Keep the Customer Satisfied(贪心 + 优先队列,姿势不对就要跪)

    按照截止日期排序,之后一个一个遍历,记录当前时间,如果当前时间大于截止时间,那么从选过的任务里删除一个花费最大的任务 优先队列维护 14038525 201301052100 2786 Accepte ...

  10. acm的STL容器之队列篇 及 UVa 11292 - Dragon of Loowater 小根堆解法(贪心算法)

    2018-07-17 优先队列,即Priority Queues 1.简单介绍一下队列(介绍功能,不作分析) C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构. 1.back ...

最新文章

  1. SVN冲突出现原因及解决方法浅谈
  2. 搭建基于asp.net的wcf服务,ios客户端调用的实现记录
  3. Pytorch:保存图片
  4. Hive的数据模型—桶表
  5. linux init进程原理,Linux 系统下 init 进程的前世今生
  6. tcpdump和wireshark抓包方法介绍
  7. 【集训队作业】IOI 2020 集训队作业 试题泛做 8
  8. 心法利器[58] | 从长尾问题到以搜代分的机理探索
  9. k1075停运吗_全国铁路大调图,怀化火车站6对旅客列车停运!
  10. 南大周志华、俞扬、钱超最新力作:演化学习:理论与算法进展一书导读
  11. 【中间件技术】第四部分 Web Service规范(10) Web Service规范
  12. 基于OpenCASCADE自制三维建模软件(六)瓶子模型例程
  13. ECSHOP去掉版权
  14. 人的计算与机器的计算
  15. 零基础如何备考系统集成项目管理工程师?
  16. 大电流吊车导电滑环的特性介绍
  17. 牛客网面试高频题top100(1~10)
  18. 围棋学习网站 (updating)
  19. 通过【工业互联网+安全生产一体化管控平台】看VisualDataAIoT最佳实践
  20. SAP 消息 有关成本控制范围 XXXX的控制标志不存在

热门文章

  1. HDU 3729 I#39;m Telling the Truth(二部图最大匹配+结果输出)
  2. 第三回:羁旅客忆碌碌旧事 暴雨天里依依惜别[林大帅作品连载]
  3. 鼠标移动到曲线图上显示值
  4. kmeans算法c语言代码,ML算法与代码实现——Kmeans(案例)
  5. 循环删除list中多个元素
  6. android开发完全退出activity
  7. 1007 计算(a+b)*c的值
  8. [网络流24题] 软件补丁问题
  9. Windows禁止ping回显
  10. html代码表白_作为一个程序员,表白都要玩出花样