bzoj1029 [JSOI2007]建筑抢修
2016-05-17 17:33
405 查看
贪心,按截止时间排序,然后按截止时间从小到大枚举维修的建筑,如果之前修理建筑的总时间+当前修理时间<=截止时间,那么答案+1,否则如果之前修理过的建筑中最大的修理时间>当前建筑修理时间,那么替换掉之前修理的那座建筑。
代码
代码
#include<cstdio> #include<queue> #include<algorithm> #define mp make_pair #define fi first #define sc second using namespace std; const int N = 2001010; priority_queue<int> Q; struct g{ int a,b; }v ; bool cmp(g u,g v) { if (u.b==v.b) return u.a>v.a; return u.b<v.b; } int n,sum,i,ans; int main() { scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d%d",&v[i].a,&v[i].b); sort(v+1,v+1+n,cmp); for (i=1;i<=n;i++) { //printf("%d %d\n",sum,v[i].b); if (sum+v[i].a>v[i].b) { if ((!Q.empty())&&(Q.top()>v[i].a)) { sum-=Q.top(); sum+=v[i].a; Q.pop(); Q.push(v[i].a); } } else { Q.push(v[i].a); sum+=v[i].a; ans++; } } printf("%d\n",ans); }
相关文章推荐
- Ajax发送json格式数据到Asp.net MVC服务端的一些代码片段
- Json Web Token身份认证
- JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
- Json Web Token身份认证
- Three.js讲解以及WEBGL实例(转)
- js禁止网页快捷菜单
- js hasOwnProperty
- Express使用静态资源和EJS使用部分视图
- js结合后台返回参数,动态控制各列数据展示
- javascript 图片解析Base64字符串
- JS——图片预览功能
- jstat查看内存
- [js实例] 验证身份证和姓名
- 图片加载完后执行js
- easyui-datagrid-JavaScript-导出Excel、合并单元格
- 利用JavaScript制作瀑布流
- 封装datatables
- Eclipse去除js(JavaScript)验证---红叉
- js 多少天以后的时间
- js创建数组的三个方式