bzoj 1029 [ JSOI 2007 ] 建筑抢修 —— 贪心
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1029
想不出来贪心...
首先把任务按结束时间排序;
因为任务一定是越提前做越好,所以从头开始往后做任务,时间增加,记录 nw;
新加入一个任务,如果能够完成,那么完成即可;
如果不行,从已经完成的任务中找一个替换使时间提前的,这样答案不变但是 nw 更小,为后面提供更大的空间;
注意替换掉的要比当前任务花费的时间长!
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int const maxn=;
int n,nw,ans;
priority_queue<int>q;
struct N{int t,d;}p[maxn];
bool cmp(N x,N y){return x.d<y.d;}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d%d",&p[i].t,&p[i].d);
sort(p+,p+n+,cmp);
for(int i=;i<=n;i++)
{
if(nw+p[i].t<=p[i].d)
{
nw+=p[i].t; ans++;
q.push(p[i].t);
}
else if(q.size()&&q.top()>p[i].t&&nw-q.top()+p[i].t<=p[i].d)//q.top()>p[i].t!
{
nw-=q.top(); nw+=p[i].t;
q.pop(); q.push(p[i].t);
}
}
printf("%d",ans);
return ;
}
bzoj 1029 [ JSOI 2007 ] 建筑抢修 —— 贪心的更多相关文章
- 【BZOJ 1029】[JSOI2007]建筑抢修
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1029 [题意] [题解] /* 按照T2升序排 顺序枚举每一个建筑; 如果当前建筑能够 ...
- [BZOJ 1032][JSOI 2007]祖玛 题解(区间DP)
[BZOJ 1032][JSOI 2007]祖玛 Description https://www.lydsy.com/JudgeOnline/problem.php?id=1032 Solution ...
- [JSOI2007]建筑抢修(贪心+后悔)
[JSOI2007]建筑抢修(贪心+后悔) 洛谷题目传送门 吐槽 这是一道经典的贪心后悔的题目 做过贪心加后悔的题目的应该一眼可以看出来 解题思路 首先按倒塌时间T2排序,再从1枚举到n,能修就修,发 ...
- BZOJ 1029 建筑抢修 贪心+堆
又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ...
- 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: 5452 Solved: 2422[Submit][Statu ...
- BZOJ1029:[JSOI2007]建筑抢修(贪心,堆)
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快 ...
- [JSOI2007]建筑抢修——贪心反悔堆
题目描述 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建 ...
- 【bzoj1029】[JSOI2007]建筑抢修 贪心+堆
题目描述 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建 ...
随机推荐
- CSS——新浪导航demo
主要运用的dispaly将a变成行内块,再用padding撑开宽度. <!DOCTYPE html> <html lang="en"> <head&g ...
- [Windows Server 2008] Serv-U安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Serv- ...
- mysql命令行导出数据
1. 包含表头 mysql -h${1} -P${2} -u${3} -p${4} -Dpom_${5} --default-character-set=utf8 -B -e > result. ...
- 在PHP中调用php_ssh实现远程登陆linux服务器并执行shell脚本。
这个功能主要用于在web端利用程序对远程服务器进行操作,通过PHP_ssh执行shell脚本来实现. 首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装.window下 ...
- Html test
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- EF-Linq
一丶基本语法(from a in Table where a.id="001" select a).Tolist(); 隐式内连接from a in table1 join b i ...
- 好用的JS数字格式化
/* *js格式化数字代码 * *value: 要格式化的数字值 *scale: 最多保留几位小数 *zeroed: 是否保留尾0 *percented: 是否转称百分比形式 * */ functio ...
- paste deploy初探
这段时间刚着手开始研究Openstack Swift源码,为后续开发做准备. Swift依据python WSGI规范.WSGI(Web Server Gateway Interface)是Pytho ...
- window.parent与window.opener、window.showModalDialog的区别 opener和showModalDialog刷新父页面的方法
项目中使用案例: 父窗体 <s:form namespace="/forexagent" id="listSearchForm" name="t ...
- MSSQL的表备份成INSERT脚本的存储过程
USE [SupplyChain]GO/****** Object: StoredProcedure [dbo].[ExpData] Script Date: 2015-12-18 10:23:08 ...