【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)
problem
- n个建筑需要抢修
- 第i个建筑需要T1时间抢修,必须在T2时间之前抢修完毕
- 求最多能抢修多少建筑
solution
- 先按照 t2 从小到大排列(对于每一个建筑,我们肯定等它快到限制的时候再修复它。)
- 对于一个建筑,如果能修理就修理;
- 如果不能修,就比较他和前面修理了的建筑的修理时间。如果小于就交换(取消修理前面的建筑而改修理当前建筑,这样虽然不能更新ans 但是可以为后面的建筑节省时间
- 维护一个大根堆 每修理一栋建筑 我们就把这栋建筑的T1值加入堆 若当前无法修理 我们判断堆顶是否比这栋建筑的T1大。如果大,取消修理堆顶,改为修理当前建筑
codes
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 1100010;
struct node{ int t1, t2; }a[maxn];
bool cmp(node a, node b){return a.t2<b.t2; }
int main(){int n; cin>>n;for(int i = 1; i <= n; i++)cin>>a[i].t1>>a[i].t2;sort(a+1,a+n+1,cmp);int now = 0, ans = 0;priority_queue<int>q;for(int i = 1; i <= n; i++){if(now+a[i].t1 <= a[i].t2){//能修就修ans++;now += a[i].t1;q.push(a[i].t1);}else if(a[i].t1<q.top()){//不能修考虑是否交换now = now+a[i].t1-q.top();q.pop(); q.push(a[i].t1);}}cout<<ans<<'\n';return 0;
}
【JSOI2007】【BZOJ1029】建筑抢修(贪心,堆)相关推荐
- 【bzoj1029】【JSOI2007】建筑抢修
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB Submit: 6417 Solved: 2883 [Submit][Sta ...
- [JSOI2007]建筑抢修 (贪心)
题目链接 Solution 可以考虑 \(dp\) ,但是很显然 \((n^2)\) 降不下来. 然后考虑贪心,首先,绝对的正确的是,在同等的情况下,给后面的留更多的时间. 首先按照 \(T_2\) ...
- BZOJ.1029.[JSOI2007]建筑抢修(贪心)
题目链接 直接排序显然怎么都不行. 先按毁坏时间排序,优先修损坏早的,中途我们再改修的建筑. 枚举每个建筑x,如果能,就修:不能的话,从之前要修的建筑中找一个花时最大的need[top],如果need ...
- 【JSOI2007】【BZOJ1029】【codevs2913】建筑抢修,贪心与堆
1029: 建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB Submit: 3109 Solved: 1396 [Submit][Status][Discuss ...
- BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心
1029: [JSOI2007]建筑抢修 Description 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者.但 ...
- BZOJ 1029: [JSOI2007]建筑抢修【贪心】
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB Description 小刚在玩JSOI提供的一个称之为"建筑抢修&q ...
- Bzoj1029 [JSOI2007]建筑抢修
Time Limit: 4 Sec Memory Limit: 162 MB Submit: 4452 Solved: 2006 Description 小刚在玩JSOI提供的一个称之为" ...
- P4053 [JSOI2007] 建筑抢修(反悔贪心)
P4053 [JSOI2007] 建筑抢修https://www.luogu.com.cn/problem/P4053 #include <iostream> #include <c ...
- 专题突破之反悔贪心——建筑抢修,Cow Coupons G, Voting (Hard Version),Cardboard Box
文章目录 [JSOI2007]建筑抢修 [USACO12FEB]Cow Coupons G CF1251E2 Voting (Hard Version) CF436E Cardboard Box [J ...
- 洛谷——P4053 [JSOI2007]建筑抢修
P4053 [JSOI2007]建筑抢修 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个 ...
最新文章
- 数据结构(05)— 线性单链表实战
- TensorRT Analysis Report分析报告
- leetcode--删除排序链表中的重复元素--python
- 全方位复盘GNN,12位大神寄望2021年大爆发
- msyql主从同步实践
- 14秋 c 语言程序设计 在线作业1,14秋学期《C语言及程序设计》在线作业
- mybatis 连接池_应用框架之Mybatis数据源和连接池
- JavaScript中this指向
- AtCoder Regular Contest 100 E - Or Plus Max Sos dp
- Java学习笔记17(面向对象十:综合案例)
- 6.网络层(4)---IP多播,NAT
- BUCK拓扑中IDC与IO的关系推导 // 《精通开关电源设计》P41式2-1
- hdb3编码规则波形_求HDB3码编码后波形,编码后功率谱密度图形,求解啊
- 健康管理平台设计与实现
- 武汉理工大学-数值分析-2019年期末复习提纲
- 面试时,当HR问“你有什么要问我的吗”时,应该问什么?
- 计算机英语第二版期末翻译试题答案,开放英语I期末翻译测试题
- [arduino]红外接收测试工装
- Qt如何获取外网IP地址
- php 获取一年有多少天,【后端开发】php获取一年有多少天
热门文章
- 徘徊于斗牛之间 —— 星象、星宿与星座(风水)
- 可视化——matploblib 解决中文显示的问题
- Gamma 分布与 Beta 分布及共轭的含义
- 用 scipy.weave 嵌入 C 语言
- 用c语言怎样将swf转化为pdf,利用ABCpdf.NET将网页转换成PDF的方法小结
- c++读取.dat文件_Python之旅,Day5 - 文件操作
- 简明python教程-Python简明教程
- python与excel-超简单:用Python让Excel飞起来
- python怎么读取txt文件-Python三种读取txt文件方式
- 科大讯飞:讯飞输入法日语音交互次数超10亿,将发力5G和AIoT领域