UVa1422 Processor
关于这个题想强调一下这个时间点i的意义.
在二分中有这句话
while(cnt <= N && E[cnt].s < i) q.push(E[cnt++]);
我一开始不理解为什么起始时间严格小于 i 才能push进去, 网上好像也没有讲的.
自己手玩了一下, 才明白实际上 i 可以理解成第 i 天的末尾.
那么, 如果起始时间等于 i 的话相当于是在这一天的开头, 当然不能扔进去.
1 #include <cstdio> 2 #include <iostream> 3 #include <cstring> 4 #include <algorithm> 5 #include <queue> 6 using namespace std; 7 const int MAXN = 1e5 + 20; 8 9 int N; 10 struct event 11 { 12 int s, t, w; 13 bool operator <(const event &rhs) const{ 14 return t > rhs.t; 15 } 16 }E[MAXN]; 17 18 bool cmp1(const event &lhs, const event &rhs){ 19 return lhs.s < rhs.s; 20 } 21 int last = 0; 22 23 inline bool check(int x) 24 { 25 priority_queue<event> q; 26 int cnt = 1; 27 for(int i = 1; i <= last; i++) 28 { 29 while(cnt <= N && E[cnt].s < i) q.push(E[cnt++]); 30 31 int v = x; 32 while(!q.empty() && v > 0) 33 { 34 event u = q.top(); q.pop(); 35 if(u.t < i) return false; 36 if(u.w > v){ 37 u.w -= v; 38 q.push(u); 39 break; 40 } 41 else v -= u.w; 42 } 43 if(cnt == N + 1 && q.empty()) return true; 44 } 45 return false; 46 } 47 48 int main() 49 { 50 int T; 51 cin>>T; 52 while(T--) 53 { 54 last = 0; 55 cin>>N; 56 int l = 0, r = 0; 57 for(int i = 1; i <= N; i++) 58 scanf("%d%d%d", &E[i].s, &E[i].t, &E[i].w), 59 r += E[i].w, last = max(last, E[i].t); 60 61 sort(E + 1, E + N + 1, cmp1); 62 63 #define mid (((l) + (r)) >> 1) 64 while(l < r) 65 { 66 if(check(mid)) r = mid; 67 else l = mid + 1; 68 } 69 printf("%d\n", l); 70 } 71 return 0; 72 }
转载于:https://www.cnblogs.com/wsmrxc/p/9228194.html
UVa1422 Processor相关推荐
- UVa1422 - Processor(二分法)
问题:给出n个任务,已知每个任务的起始时间.结束时间及工作量.n个任务串行执行,问处理器可以完成这些任务时,处理器速度的最小值. 思路:因为起始时间.结束时间.工作量及处理器速度为整数.先将任务按照起 ...
- Pliops XDP(Extreme Data Processor)数据库存储设计的新型加速硬件
文章目录 0 前言 1 核心问题 1.1 引擎的各方面性能受限于数据结构的选择 1.2 压缩功能 导致的CPU瓶颈 1.3 Crash-safe 崩溃异常的无奈选择 1.4 当前主流 加速硬件 较难满 ...
- 【Cmake】执行cmake命令时报错:No XSLT processor found
一.问题描述 在ubuntu中,在生成Doc(文档)中,执行cmake命令时报错:No XSLT processor found 二.原因查找 google该错误信息,原因是确实ubuntu中没有安装 ...
- html5 audio标志改变音量,HTML5之Audio(二)—— processor调节音量
Audio var AudioContext = AudioContext || webkitAudioContext || mozAudioContext || msAudioContext, // ...
- PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现
于ARM9内核Processor外部NAND FLASH的控制实现 夏 涛 (上海交通大学微电子学院 上海 200030) 1 NAND FLASH NAND写回速度快.芯片面积小,特别是大容量使其优 ...
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor 水题
B. Vanya and Food Processor 题目连接: http://www.codeforces.com/contest/677/problem/B Description Vanya ...
- Elasticsearch 摄取节点(Ingest Node)常用的数据处理器(Processor)
文章目录 Set Processor Append Processor Remove Processor Rename Processor Convert Processor Grok Process ...
- springbatch的writer、processor、reader复杂太难用?使用tasklet更方便!
writer.processor.reader复杂太难用,使用mybatis太复杂,操作数据库太复杂,一不小心还会配置出错. 使用tasklet更加方便! @Component public clas ...
- Xilinx IP解析之Processor System Reset v5.0
一. IP概述 可参考Xilinx官网Processor System Reset Module概述, 以下翻译自官网此IP的概述. 产品描述: Xilinx处理器系统复位模块允许客户通过设置某些参数 ...
最新文章
- 箱线图怎么判断异常值_箱形图(Box-plot)识别异常值,是否有数据依据?还是经验法则?...
- 浏览器常见bug及解决办法
- 修改表字段类型长度_PG修改字段
- 【算法竞赛学习】二手车交易价格预测-Task4建模调参
- JDK官网下载速度缓慢解决方法
- 机器人方队解说词_创想机器人博物馆配音解说词
- 【超级鼠标键盘锁】之HOOK钩子屏蔽鼠标和Ctrl+Alt+Del、Win+L之外的按键
- CAD格式刷怎么用?CAD格式刷使用技巧
- 【读书笔记】《Web全栈工程师的自我修养》
- python语音库_python音频库dejavu原理浅析
- 年度回顾篇:2018年的亚马逊,众生虽苦,诸恶莫作
- android朋友圈动态视频,Android实现微信朋友圈图片和视频播放
- 深入理解Spring IoC的原理(转发)
- 机器人鸣人是哪一集_火影忍者596集剧情介绍番外篇九尾抢夺指令_鸣人VS机器人版鸣人...
- 要闻 | 人大金仓重磅亮相2022南京软博会
- ROS下同步通信topic和异步通信service的异同
- 企业微信对外收款使用指南
- SQL之cast()函数用法
- 接招吧,最强“高并发”系统设计 46 连问,分分钟秒杀一众面试者
- 《多核与GPU编程:工具、方法及实践》----1.3 现代计算机概览
热门文章
- wxpython 文本框TextCtrl
- VMWare虚拟机-锁定文件失败,打不开磁盘的解决办法
- 个人项目1:随机生成30道整数四则运算题
- 2018把坚韧坚持到底
- Reveal v4(8796) 使用
- centos安装python gcc sqlite
- How to install OpenERP 6 on Ubuntu 10.04 LTS Server--1
- [导入]C#面向对象设计模式纵横谈(24):(行为型模式) Visitor 访问者模式.zip(10.41 MB)...
- MySQL Statement Cancellation Timer] but has failed to stop it.
- java找不到符号IOException_java:7: 找不到符号