【JSOI 2007】建筑抢修
【题目链接】
【算法】
将T2从小到大排序,当决策当前建筑修或不修时,若当前花费时间 + T1 <= T2,则修,否则判断T1是否小于之前修的
T1最大的建筑,若小于,则修,我们可以用一个大根堆来维护T1的最大值
这题用的其实就是贪心的思想 : 从局部最优到全局最优
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXN 150000 struct info {
int T1,T2;
} a[MAXN+]; int N,i,ans,s;
priority_queue<int> q; template <typename T> inline void read(T &x) {
int f=; x=;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = x * + c - '';
x *= f;
} template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
} template <typename T> inline void writeln(T x) {
write(x);
puts("");
} bool cmp(info a,info b) {
return a.T2 < b.T2;
} int main() { read(N);
for (i = ; i <= N; i++) {
read(a[i].T1);
read(a[i].T2);
}
sort(a+,a+N+,cmp); for (i = ; i <= N; i++) {
if (s + a[i].T1 <= a[i].T2) {
s += a[i].T1;
q.push(a[i].T1);
++ans;
} else if ((!q.empty()) && (a[i].T1 < q.top())) {
s = s - q.top() + a[i].T1;
q.pop();
q.push(a[i].T1);
}
} writeln(ans); return ; }
【JSOI 2007】建筑抢修的更多相关文章
- bzoj 1029 [ JSOI 2007 ] 建筑抢修 —— 贪心
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1029 想不出来贪心... 首先把任务按结束时间排序: 因为任务一定是越提前做越好,所以从头开 ...
- BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 3785 Solved: 1747[Submit][Statu ...
- BZOJ 1029 建筑抢修 贪心+堆
又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ...
- BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心
1029: [JSOI2007]建筑抢修 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有 ...
- BZOJ1029 建筑抢修
Description 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重 ...
- BZOJ 1029: [JSOI2007]建筑抢修 贪心
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1029 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,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 \(n\)个任务需要完成,给出每个任务所需时间\(t_1\)与deadline\(t_2 ...
- 1029: [JSOI2007]建筑抢修 - BZOJ
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修 ...
- BZOJ 1029 建筑抢修
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修 ...
随机推荐
- Ajax 实现文件的下载
JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...
- json常见用法-loads、jumps、load、jump
这一篇博客的目的主要是想说明一个问题:干什么事情要抓住重点,不要力求完美,不要追求那种'大而全'的办事方式,因为时间是有限的,而客观事物(这里主要指技术方面的知识)是无限的,so,anyway! 1. ...
- Java计算文件MD5值代码
原文:http://www.open-open.com/code/view/1424930488031 import java.io.File; import java.io.FileInputStr ...
- android 图片的平移,缩放和旋转
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- MySql视频教程——百度云下载路径
百度云分享MySql视频教程给大家.祝大家事业进步! MySql视频教程:http://pan.baidu.com/s/1gdCHX79 password:n46i
- 使用maven创建项目和cannot change version web module 3.0
近期下载了最新的Eclipse mars.2, 这个eclipse自带了maven插件,于是就用maven尝试创建一个java web项目. 第一步,例如以下图所看到的选择 Maven Project ...
- 如何卸载centos中自带的Java
首先通过 Java -version 来查看是否已经安装了java 然后通过rpm -qa | grep java 来获得java的版本信息 然后再 用 rpm -e --nodeps [这里依次 ...
- ActiveMQ(一) 转
package pfs.y2017.m11.mq.activemq.demo01; import javax.jms.Connection; import javax.jms.DeliveryMode ...
- innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的大小限制
btr_cur_optimistic_insert{ ... /*检查分裂页时是否有足够的空间预留给未来记录的update*/ if (leaf && !zip_size && ...
- Arcgis Engine(ae)接口详解(5):IGeometry几何基础操作
//点操作~~~~~~~~~~~~~~~~~~~~~~~~~ //通过坐标生成点 IPoint point = new PointClass(); point.PutCoords(, ); //获取点 ...