problem

  • n个建筑需要抢修
  • 第i个建筑需要T1时间抢修,必须在T2时间之前抢修完毕
  • 求最多能抢修多少建筑

solution

  • 先按照 t2 从小到大排列(对于每一个建筑,我们肯定等它快到限制的时候再修复它。)
  • 对于一个建筑,如果能修理就修理;
  • 如果不能修,就比较他和前面修理了的建筑的修理时间。如果小于就交换(取消修理前面的建筑而改修理当前建筑,这样虽然不能更新ans 但是可以为后面的建筑节省时间
  • 维护一个大根堆 每修理一栋建筑 我们就把这栋建筑的T1值加入堆 若当前无法修理 我们判断堆顶是否比这栋建筑的T1大。如果大,取消修理堆顶,改为修理当前建筑

codes

#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 1100010;
struct node{ int t1, t2; }a[maxn];
bool cmp(node a, node b){return a.t2<b.t2; }
int main(){int n;  cin>>n;for(int i = 1; i <= n; i++)cin>>a[i].t1>>a[i].t2;sort(a+1,a+n+1,cmp);int now = 0, ans = 0;priority_queue<int>q;for(int i = 1; i <= n; i++){if(now+a[i].t1 <= a[i].t2){//能修就修ans++;now += a[i].t1;q.push(a[i].t1);}else if(a[i].t1<q.top()){//不能修考虑是否交换now = now+a[i].t1-q.top();q.pop();  q.push(a[i].t1);}}cout<<ans<<'\n';return 0;
}

【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)相关推荐

  1. 【bzoj1029】【JSOI2007】建筑抢修

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MB Submit: 6417  Solved: 2883 [Submit][Sta ...

  2. [JSOI2007]建筑抢修 (贪心)

    题目链接 Solution 可以考虑 \(dp\) ,但是很显然 \((n^2)\) 降不下来. 然后考虑贪心,首先,绝对的正确的是,在同等的情况下,给后面的留更多的时间. 首先按照 \(T_2\) ...

  3. BZOJ.1029.[JSOI2007]建筑抢修(贪心)

    题目链接 直接排序显然怎么都不行. 先按毁坏时间排序,优先修损坏早的,中途我们再改修的建筑. 枚举每个建筑x,如果能,就修:不能的话,从之前要修的建筑中找一个花时最大的need[top],如果need ...

  4. 【JSOI2007】【BZOJ1029】【codevs2913】建筑抢修,贪心与堆

    1029: 建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB Submit: 3109 Solved: 1396 [Submit][Status][Discuss ...

  5. BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心

    1029: [JSOI2007]建筑抢修 Description 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者.但 ...

  6. BZOJ 1029: [JSOI2007]建筑抢修【贪心】

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB Description 小刚在玩JSOI提供的一个称之为"建筑抢修&q ...

  7. Bzoj1029 [JSOI2007]建筑抢修

    Time Limit: 4 Sec  Memory Limit: 162 MB Submit: 4452  Solved: 2006 Description 小刚在玩JSOI提供的一个称之为" ...

  8. P4053 [JSOI2007] 建筑抢修(反悔贪心)

    P4053 [JSOI2007] 建筑抢修https://www.luogu.com.cn/problem/P4053 #include <iostream> #include <c ...

  9. 专题突破之反悔贪心——建筑抢修,Cow Coupons G, Voting (Hard Version),Cardboard Box

    文章目录 [JSOI2007]建筑抢修 [USACO12FEB]Cow Coupons G CF1251E2 Voting (Hard Version) CF436E Cardboard Box [J ...

  10. 洛谷——P4053 [JSOI2007]建筑抢修

    P4053 [JSOI2007]建筑抢修 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个 ...

最新文章

  1. 数据结构(05)— 线性单链表实战
  2. TensorRT Analysis Report分析报告
  3. leetcode--删除排序链表中的重复元素--python
  4. 全方位复盘GNN,12位大神寄望2021年大爆发
  5. msyql主从同步实践
  6. 14秋 c 语言程序设计 在线作业1,14秋学期《C语言及程序设计》在线作业
  7. mybatis 连接池_应用框架之Mybatis数据源和连接池
  8. JavaScript中this指向
  9. AtCoder Regular Contest 100 E - Or Plus Max Sos dp
  10. Java学习笔记17(面向对象十:综合案例)
  11. 6.网络层(4)---IP多播,NAT
  12. BUCK拓扑中IDC与IO的关系推导 // 《精通开关电源设计》P41式2-1
  13. hdb3编码规则波形_求HDB3码编码后波形,编码后功率谱密度图形,求解啊
  14. 健康管理平台设计与实现
  15. 武汉理工大学-数值分析-2019年期末复习提纲
  16. 面试时,当HR问“你有什么要问我的吗”时,应该问什么?
  17. 计算机英语第二版期末翻译试题答案,开放英语I期末翻译测试题
  18. [arduino]红外接收测试工装
  19. Qt如何获取外网IP地址
  20. php 获取一年有多少天,【后端开发】php获取一年有多少天

热门文章

  1. 徘徊于斗牛之间 —— 星象、星宿与星座(风水)
  2. 可视化——matploblib 解决中文显示的问题
  3. Gamma 分布与 Beta 分布及共轭的含义
  4. 用 scipy.weave 嵌入 C 语言
  5. 用c语言怎样将swf转化为pdf,利用ABCpdf.NET将网页转换成PDF的方法小结
  6. c++读取.dat文件_Python之旅,Day5 - 文件操作
  7. 简明python教程-Python简明教程
  8. python与excel-超简单:用Python让Excel飞起来
  9. python怎么读取txt文件-Python三种读取txt文件方式
  10. 科大讯飞:讯飞输入法日语音交互次数超10亿,将发力5G和AIoT领域