补题链接:Here

算法涉及:优先队列 + 贪心

因为每一个都有截止时间,按照截止时间排序下来,

如果修复这个工程的时间+修复这个之前的总时间<=截止时间。那么就是可以在规定的时间内完成。

保证在规定的时间内完成的数量最多。

如果修复这个工程的时间+修复这个之前的总时间>截止时间。就是时间超限这个工程不能完成:

在这里要细想一下:不能完成的时候,如果修复当前这个工程的时间比修复之前工程的最大时间要短,就是可以总时间上更优,我当然是选择修复这个而不是去修复那个时间比较长的。//这样保证时间最短。

因为我们是按截止时间排的序,所以上个能完成的这个也就一定能完成。

我们每次都要找到之前修复工程时间最长的,所以可以直接用一个优先队列来维护修复工程时间最长的。

#define x first
#define y second
const int N = 150000 + 10; // 别开小了
pair<int, int>a[N];
void solve() {
int n; cin >> n;
for (int i = 1; i <= n; ++i)cin >> a[i].y >> a[i].x;
sort(a + 1, a + 1 + n);
int now = 0, cnt = 0;
priority_queue<int>q;
for (int i = 1; i <= n; ++i) {
if (now + a[i].y <= a[i].x) {
now += a[i].y;
cnt++;
q.push(a[i].y);
} else if (q.top() > a[i].y) {
now -= q.top(), now += a[i].y;
q.pop(), q.push(a[i].y);
}
}
cout << cnt << "\n";
}

【每日一题】37. [JSOI2007]建筑抢修 (优先队列 + 贪心)的更多相关文章

  1. [JSOI2007]建筑抢修 优先队列 贪心

    Code: #include<cstdio> #include<algorithm> #include<cstring> #include<queue> ...

  2. BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆

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

  3. BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 3785  Solved: 1747[Submit][Statu ...

  4. BZOJ 1029: [JSOI2007]建筑抢修 优先队列

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  5. bzoj1029: [JSOI2007]建筑抢修(堆+贪心)

    1029: [JSOI2007]建筑抢修 题目:传送门 题解: 一道以前就做过的水题(找个水题签个到嘛...) 很明显就是一道贪心题,这里我们用一个堆来维护 具体看代码吧,很容易YY所以不讲 代码: ...

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

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

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

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 2285  Solved: 1004[Submit][Statu ...

  8. 【BZOJ】1029: [JSOI2007]建筑抢修(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1029 按右端点排序后依次加入,并且每一次看是否能被修筑,如果能就修:否则查找原来修过的,如果原来修过 ...

  9. bzoj 1029: [JSOI2007]建筑抢修 (优先队列)

    链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1029 思路: 按结束时间排序,优先选结束时间短的,选完后扔到优先队列里(大的优先),如果选到 ...

  10. [BZOJ1029] [JSOI2007]建筑抢修(贪心 + 优先队列)

    传送门 把数据存在结构体中,至于怎么贪心? 肯定会有些想法,正确错误先不必说,先来试一试. 1.按照 t2 为第一关键字从小到大排,按照 t1 为第二关键字从小到大排 这个显然错,比如后面有个数的 t ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (143)-- 算法导论12.1 3题

    三.用go语言,设计一个执行中序遍历的非递归算法.(提示:一种容易的方法是使用栈作为辅助数据结构;另一种较复杂但比较简洁的做法是不使用栈,但要假设能测试两个指针是否相等.) 文心一言,代码正常运行: ...

  2. 浏览器跨 Tab 窗口通信原理及应用实践

    最近,相信大家一定被这么个动效给刷屏了: 以至于,基于这个效果的二次创作层出不穷,眼花缭乱. 基于跨窗口通信的弹弹球: 基于跨窗口通信的 Flippy Bird: 我也尝试制作了一个跨 Tab 窗口的 ...

  3. 为什么MySQL不建议使用delete删除数据?

    MySQL并不直接建议禁止使用DELETE语句删除数据,但是在某些情况下,使用DELETE可能会带来一些潜在的问题,特别是在大型数据库中. 下面我将详细介绍为什么在某些情况下MySQL不建议过度使用D ...

  4. 数据可视化工具 ,不会写 SQL 代码也能做数据分析

    数据可视化工具可以帮助人们以直观.易于理解的方式展现和分析数据.这些工具使得即使不会写 SQL 代码的人也能进行数据分析,并从中获得有价值的信息和见解. 本文将详细介绍几种常用的数据可视化工具及其功能 ...

  5. 掌握这些,轻松管理BusyBox:inittab文件的配置和作用解析

    BusyBox 是一个轻量级的开源工具箱,其中包含了许多标准的 Unix 工具,例如 sh.ls.cp.sed.awk.grep 等,同时它也支持大多数关键的系统功能,例如自启动.进程管理.启动脚本等 ...

  6. 一次elasticsearch 查询瞬间超时案例分析

    大家好,我是蓝胖子,有段时间没有做性能分析案例讲解了,正好前两天碰到一个性能问题,今天就来对它探讨探讨. 问题背景 在晚上9点左右,刚从外面逛街回到家,就接到了电话报警(幸好前不久刚好把电话报警机制加 ...

  7. 在CPF里使用OpenGL做跨平台桌面应用开发

    CPF 是开源的C#跨平台UI框架,支持使用OpenGL来渲染,可以用来硬件加速播放视频或者显示3D模型 实现原理其实就是Skia用OpenGL后端,Skia里绑定GLView的OpenGL纹理,将纹 ...

  8. DFT与ATE IP TEST

    IP的DFT设计测试与ATE IP TEST是一个设计,测试活动吗? 不是. 这两个设计对于前端工农村很容易搞混,认为是同一个人负责,同一个活动.实际情不是. DFT主要空DSC控制器对IP进行扫描, ...

  9. VUE2.0 学习 第一组

    本笔记主要参考菜鸟教程和官方文档编写. 1. 对于Vue2.0来说每个vue应用都需要实例化vue来实现. var vm = new Vue({ // 选项 }) 2.首先,DOM是一种api,它可以 ...

  10. 如何将Swagger接口导入ApiFox

    先按照如下图操作 在apifox创建一个新项目,点击项目 点击导入数据(可以选择手动或者自动) 复制刚才的url,然后立即导入,保存