BZOJ1029_建筑抢修_KEY
这是一道贪心的问题。
总体做法是这样的:先按照报废的快慢从小到大SORT一遍,优先修报废快的。同时开一个大根堆(C++的朋友可以用priority_queue),用来记录已经修了的建筑的耗时大小。
在优先修建筑的时候,如果在当前所用的时间加上修的时间超过了报废时间了的话,就找出大根堆的TOP,与所要修的建筑的时间比较,如果TOP比它大,那么就放弃修之前那个修TOP时用的时间,改而以那个时间来修当前这个建筑。再将TOP替换为当前的修建筑的耗时。/※
还有就是要注意[放弃改修]时的总耗时操作的细节。
code:
/**************************************************************
Problem: 1029
User: yekehe
Language: C++
Result: Accepted
Time:444 ms
Memory:2384 kb
****************************************************************/ #include<cstdio>
#include<algorithm>
#include<queue>
using namespace std; struct FFF{int y,k;};
int n,m;
int i,j;
int tot,ans;
priority_queue<int>y;
FFF a[]; int max(int x,int y){return x>y?x:y;}
int cop(FFF x,FFF y){return x.k<y.k;} int main()
{
scanf("%d",&n);
for (i=;i<=n;i++)
scanf("%d %d",&a[i].y,&a[i].k);
sort(a+,a+n+,cop);
for (i=;i<=n;i++)
{
if (tot+a[i].y<=a[i].k)
{
tot+=a[i].y;
ans++;
y.push(a[i].y);
}
else
{
if (a[i].y<y.top()&&y.top()!=)
{
tot-=y.top()-a[i].y;
y.pop();
y.push(a[i].y);
}
}
}
printf("%d",ans);
}
O(NlogN)
有疑留评。
BZOJ1029_建筑抢修_KEY的更多相关文章
- 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: [JSOI2007]建筑抢修(贪心)
题目链接:BZOJ1029: [JSOI2007]建筑抢修 题解:贪心思想,按结束时间从小到大排序,选花费时间尽量短的建筑维修,用堆维护. #include<stdio.h> #inclu ...
- 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个建筑设施受到了严重的损伤,如果不尽快修 ...
随机推荐
- 我不 大冰2017新书pdf免费下载
善意能消戾,善意能得缘,善意能带业往生,善意能回头是岸.善意能够帮人捕捉并建立起独特的幸福感. “我不”是一种善意坦然,也是一种善意的随缘,更是一句善意的自省. <我不>——百万级畅销书作 ...
- jquery 判断元素可见性
$(".more_list").is(":visible") $(".more_list").is(":hidden")
- poj 3414 Pots 【BFS+记录路径 】
//yy:昨天看着这题突然有点懵,不知道怎么记录路径,然后交给房教了,,,然后默默去写另一个bfs,想清楚思路后花了半小时写了120+行的代码然后出现奇葩的CE,看完FAQ改了之后又WA了.然后第一次 ...
- poj3259 Wormholes【Bellman-Ford或 SPFA判断是否有负环 】
题目链接:poj3259 Wormholes 题意:虫洞问题,有n个点,m条边为双向,还有w个虫洞(虫洞为单向,并且通过时间为倒流,即为负数),问你从任意某点走,能否穿越到之前. 贴个SPFA代码: ...
- 阅读MySQL文档第21章摘抄
触发程序是与表相关的数据库对象. mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); Query OK, 0 ro ...
- .Net Core SignalR 初体验
前言 Asp.Net SignalR已经出来很久了,但是一直没有静下心来好好看看.昨天花了几个小时的时间看了下.首先借鉴了官方文档,如何搭建一个SignalR的Demo. 参考文章:https://d ...
- webstorm&phpstorm打开大型项目卡死解决如vue-laravel-Yii2
用phpstorm开发时如果项目中文件过多会造成phpstorm变慢甚至卡死,尤其在node加入到我们的项目中更加会加重这种情况,因为node_modules目录中的模块非常多,phpstorm加载这 ...
- socket相关的开机初始化分析
针对内核3.9 系统开启时,会使用init/main.c,然后再里面调用kernel_init(),在里面会再调用do_basic_setup(),调用do_initcalls(),调用do_one_ ...
- android application project 开发准备工作
1.下载对应的JDK.SDK http://www.androiddevtools.cn/ 2.创建安卓app应用模拟器Run时会出现如图情况 解决办法是: 启动 Android SDK Manage ...
- PAT——1007. 素数对猜想
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...