LA 3507 Keep the Customer Satisfied (Greedy)
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1508
贪心,经典题的变形,只是变成了要消耗时间,其实还是跟经典的求最大价值相似。
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #define REP(i, n) for (int i = 0; i < (n); i++) 2 #define PRIQ priority_queue 3 typedef pair<int, int> PII; 4 typedef vector<PII> VPII; 5 6 PRIQ<int, VI, less<int> > Q; 7 VPII rec; 8 9 int main() { 10 // freopen("in", "r", stdin); 11 int T, n, q, d; 12 scanf("%d", &T); 13 while (T--) { 14 scanf("%d", &n); 15 rec.clear(); 16 REP(i, n) { 17 scanf("%d%d", &q, &d); 18 rec.PB(MPR(d, q)); 19 } 20 sort(ALL(rec)); 21 while (!Q.empty()) Q.pop(); 22 int sum = 0; 23 REP(i, n) { 24 if (sum + rec[i].SE > rec[i].FI) { 25 if (!Q.empty()) { 26 if (Q.top() > rec[i].SE && (sum - Q.top() + rec[i].SE <= rec[i].FI)) { 27 sum -= Q.top(); 28 Q.pop(); 29 sum += rec[i].SE; 30 Q.push(rec[i].SE); 31 } 32 } 33 } else { 34 sum += rec[i].SE; 35 Q.push(rec[i].SE); 36 } 37 } 38 printf("%d\n", SZ(Q)); 39 if (T) puts(""); 40 } 41 return 0; 42 }
——written by Lyon
转载于:https://www.cnblogs.com/LyonLys/archive/2013/03/02/LA_3507_Lyon.html
LA 3507 Keep the Customer Satisfied (Greedy)相关推荐
- UVa1153 Keep The Customer Satisfied(贪心)
问题:有 n个订单,每个订单有两个属性,数量 q吨和交付时间d,其中每生产一吨铁需要1个单位时间.要求拒绝的订单数最少. 思路:对于两个订单(qa,da),(qb,db),如果qa>qb,da& ...
- Keep the Customer Satisfied
题意: n个订单,每个订单有完成需要的天数,和限制的天数,求最多能完成多少订单 分析: 先按限制日期升序排列,若当前订单不能完成,和上面已选中的订单中需要天数中最大的比较,若比它小,则替换他. #in ...
- uva 1153—— Keep the Customer Satisfied
题意:有n个工作,已知每个工作的开始时间和结束时间,问最多能完成多少工作. 思路:贪心.要想使得最后的结果最佳,那么开始的晚的,要在最后来做.在此基础上,需要保证先做开始的早的(需要用优先队列来维护) ...
- UVa 1153 Keep the Customer Satisfied 【贪心 优先队列】
题意:给出n个工作,已知每个工作需要的时间last,以及截止时间end,(必须在截止时间之前完成)问最多能够完成多少个工作 首先预处理,将这n件任务按照截止时间从小到大排序 然后用一个cur记录当前做 ...
- POJ 2786 Keep the Customer Satisfied 贪心
这题刚开始想成了背包的问题,,后来一直WA,,不知道为什么,然后想了一下这题使用背包时间复杂度也过不去,所以还是要用贪心 首先这里构建一个优先队列来存储当前决定要接受的订单中的轮子个数,对于最后期限从 ...
- 【POJ】2786-Keep the Customer Satisfied(贪心 + 优先队列,姿势不对就要跪)
按照截止日期排序,之后一个一个遍历,记录当前时间,如果当前时间大于截止时间,那么从选过的任务里删除一个花费最大的任务 优先队列维护 14038525 201301052100 2786 Accepte ...
- 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》
虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...
- HOJ题目分类//放这儿没事刷刷学算法!嘻嘻!
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- HOJ 题目分类 by wywcgs
简单题(包含模拟.数论中最基础的题):1001 A+B1002 A+B+C1004 Prime Palindromes1010 The Angle1011 UNIX ls1012 Decoding T ...
最新文章
- ScalaTour-1.基础
- ComponentOne Ultimate 2020中文版
- Linux部署Node.js应用
- mysql 磁盘限额_为Linux MySQL数据库设置磁盘限额
- MySQL-常用引擎
- 电脑键盘中英文按键有哪些?有什么作用?
- .NET实现之(WebBrowser数据采集—续篇)
- python泰坦尼克号数据预测_使用python预测泰坦尼克号生还
- 【分布式】缓存穿透、缓存雪崩,缓存击穿解决方案
- 仿淘手游交易平台网站源码
- 风变编程python离线版_如何看待风变编程的Python网课
- 【优化算法】粒子群优化灰狼算法【含Matlab源码 006期】
- DCOS到底是啥?看完这篇你就懂了~
- flume-异常Closing file:log.xxxtmp failed. Will retry again in 180 seconds
- 【Lua笔记】、Lua元表
- NOIP模拟赛csy2021/10/30
- 【网络相关面试问题——八股文篇(下)】
- android dex文件过多,意外的最高级别异常:com.android.dex.DexException:定义了多个dex文件...
- Lawliet|Python学习笔记——turtle库
- 有哪些非常好的前端网站或个人博客?