BZOJ 1029 [JSOI2007]建筑抢修 贪心
2015-12-29 19:39
666 查看
顺利,思路大概是是这样,按照任务截止的时间从小到大排序,如果任务截止的时间相同就按任务执行的时间从大到小排序(后面再说为什么),并存进一个队列里。然后依次把这些任务从队列中取出按顺序执行,如果某次发现不满足,那么就在之前处理过的任务中取出执行时间最长的减去。(所以我就把任务按执行时间从大到小排序了)。思想大致若此,跑了400多毫秒。
Submit: 3147 Solved: 1416
[Submit][Status][Discuss]
100 200
200 1300
1000 1250
2000 3200
#include<cstdio> #include<iostream> #include<queue> #define rep(i,j,k) for(int i = j; i <= k; i++) using namespace std; priority_queue<int> p; struct node{ int time, zhi; node(int time,int zhi):time(time), zhi(zhi) {}; bool operator < (const node &rhs) const { return zhi > rhs.zhi || (zhi == rhs.zhi && time < rhs.time); } }; priority_queue<node> q; int read() { int s = 0, t = 1; char c = getchar(); while( !isdigit(c) ){ if( c == '-' ) t = -1; c = getchar(); } while( isdigit(c) ){ s = s * 10 + c - '0'; c = getchar(); } return s * t; } int main() { int n = read(); rep(i,1,n){ int time = read(), zhi = read(); q.push(node(time,zhi)); } int cost = 0, tot = 0; rep(i,1,n){ node u = q.top(); q.pop(); int time = u.time, zhi = u.zhi; p.push(time); cost += time; tot++; if( cost > zhi ){ int k = p.top(); p.pop(); cost -= k, tot--; } } cout<<tot<<endl; return 0; }
1029: [JSOI2007]建筑抢修
Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 3147 Solved: 1416
[Submit][Status][Discuss]
Description
小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建筑在一段时间之内没有完全修理完毕,这个建筑就报废了。你的任务是帮小刚合理的制订一个修理顺序,以抢修尽可能多的建筑。Input
第一行是一个整数N,接下来N行每行两个整数T1,T2描述一个建筑:修理这个建筑需要T1秒,如果在T2秒之内还没有修理完成,这个建筑就报废了。Output
输出一个整数S,表示最多可以抢修S个建筑.N < 150,000; T1 < T2 < maxlongintSample Input
4100 200
200 1300
1000 1250
2000 3200
Sample Output
3HINT
Source
相关文章推荐
- js的单选框的选中
- JavaScript基于面向对象之创建对象(一)
- 常用JS
- JavaScript 中的面向对象的初步认识
- JS面向对象的程序设计
- js实现,同一页面多个倒计时
- js动画实现透明度动画
- javascript中each()方法的简单实现
- js高级程序设计(四)变量、作用域和内存问题
- ajax返回json格式时,中文乱码问题,以问号形式呈现
- couchbase sync_gateway的启动配置json
- js正则表达式之解析——URL的正则表达式
- HTML5-JS文件-让IE浏览器支持HTML5标准
- 深入浅出jsonp
- 【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere
- js私有方法、公有方法、特权方法总结
- ajax当状态为"json"时,服务端返回回来若不是json格式则不执行操作,切记。。。
- Json数据出现转义字符/问题
- 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版!
- js 实现ReplaceAll 的方法