【每日一题】37. [JSOI2007]建筑抢修 (优先队列 + 贪心)
补题链接: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]建筑抢修 (优先队列 + 贪心)的更多相关文章
- [JSOI2007]建筑抢修 优先队列 贪心
Code: #include<cstdio> #include<algorithm> #include<cstring> #include<queue> ...
- BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆
BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是 ...
- BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 3785 Solved: 1747[Submit][Statu ...
- BZOJ 1029: [JSOI2007]建筑抢修 优先队列
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- bzoj1029: [JSOI2007]建筑抢修(堆+贪心)
1029: [JSOI2007]建筑抢修 题目:传送门 题解: 一道以前就做过的水题(找个水题签个到嘛...) 很明显就是一道贪心题,这里我们用一个堆来维护 具体看代码吧,很容易YY所以不讲 代码: ...
- BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心
1029: [JSOI2007]建筑抢修 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有 ...
- BZOJ 1029 [JSOI2007] 建筑抢修(贪心)
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 2285 Solved: 1004[Submit][Statu ...
- 【BZOJ】1029: [JSOI2007]建筑抢修(贪心)
http://www.lydsy.com/JudgeOnline/problem.php?id=1029 按右端点排序后依次加入,并且每一次看是否能被修筑,如果能就修:否则查找原来修过的,如果原来修过 ...
- bzoj 1029: [JSOI2007]建筑抢修 (优先队列)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1029 思路: 按结束时间排序,优先选结束时间短的,选完后扔到优先队列里(大的优先),如果选到 ...
- [BZOJ1029] [JSOI2007]建筑抢修(贪心 + 优先队列)
传送门 把数据存在结构体中,至于怎么贪心? 肯定会有些想法,正确错误先不必说,先来试一试. 1.按照 t2 为第一关键字从小到大排,按照 t1 为第二关键字从小到大排 这个显然错,比如后面有个数的 t ...
随机推荐
- 【Javaweb】Servlet九 | base标签的作用【详细介绍】 Web路径相关知识
base标签的作用 导言:路径跳转 <a href="/a/b/c.html">这是a下的b下的c</a></br> <a href=&q ...
- 通过.NET Core+Vue3 实现SignalR即时通讯功能
.NET Core 和 Vue3 结合使用 SignalR 可以实现强大的实时通讯功能,允许实时双向通信.在这个示例中,我们将详细说明如何创建一个简单的聊天应用程序,演示如何使用 .NET Core ...
- 机器学习-ROC曲线:技术解析与实战应用
本文全面探讨了ROC曲线(Receiver Operating Characteristic Curve)的重要性和应用,从其历史背景.数学基础到Python实现以及关键评价指标.文章旨在提供一个深刻 ...
- QT最小化程序到托盘运行
MinTray 说明 实现程序关闭时最小化托盘的功能 托盘实现显示主页面和退出的功能 支持扩展,直接引用TrayIcon类即可,对外暴露接口 单例实现,可复用 警告 注:博主所有资源永久免费,若有帮助 ...
- 吉特日化MES & SQL Server 无法执行数据库脚本
打开服务器打算远程执行一下脚本,突发发现数据库无法执行脚本,就想着是不是安装了 海康AGV 控制系统的问题导致,问题如下: 问题截图如下: 报错信息如下: ====================== ...
- easycom自动导入自定义组件
使用时要先创建一个这样的结构 相当于定义一个方法,所有的页面引用就可以了
- Charles对Android手机Https请求的抓包
Charles对Android手机Https请求的抓包 • 前情提要: 本文只是对android手机进行抓包的描述,由于android手机系统原因,android7.0系统及以上需要在app中配置证书 ...
- 同样的SQL,怎么突然就慢了?
本篇文章素材来源于某银行系统的一次性能问题分析. 许久没写这种troubleshooting类型的技术文章了,因为曾在服务公司呆过多年,工作原因,这方面之前做的多,听的更多,导致已经达到在自己认知维度 ...
- python 图片相关
python 图片相关 本篇介绍两种方式来打开图片. 1: 使用matplotlib #!/usr/bin/python3 # -*- coding: UTF-8 -*- ""&q ...
- 三个月我迁移了100PB数据
2023年马上结束,这一年做了不少事情,有一项我可以吹好几年,忍不住和大家分享一下啊. 需求 去年底收到一项需求,要求2个月内从某云存储迁移100PB数据到微软云存储,包含几百亿个文件.当时听到这个数 ...