BZOJ 1216 HNOI 2003 操作系统 堆
来源:互联网 发布:那英人品知乎 编辑:程序博客网 时间:2024/06/14 22:31
题目大意
给出一个CPU处理事件的规则,给出一些事件,问处理这些事件的顺序和结束时间。
思路
我们只需要维护一个堆来模拟他说的规则,之后按顺序输出就行了。
CODE
#define _CRT_SECURE_NO_WARNINGS#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAX 1510000using namespace std;struct Complex{ int no, arrive, lasting, priority; bool operator <(const Complex &a)const { if(priority == a.priority) return arrive > a.arrive; return priority < a.priority; } void Read() { scanf("%d%d%d", &arrive, &lasting, &priority); }}src[MAX];int cnt;priority_queue<Complex> q;int rest[MAX];int main(){ int x; while(scanf("%d", &x) != EOF) { src[++cnt].no = x; src[cnt].Read(); rest[src[cnt].no] = src[cnt].lasting; } q.push(src[1]); int now_time = src[1].arrive; for(int i = 2; i <= cnt; ++i) { while(!q.empty() && now_time + rest[q.top().no] <= src[i].arrive) { Complex temp = q.top(); q.pop(); now_time += rest[temp.no]; printf("%d %d\n", temp.no, now_time); } if(!q.empty()) rest[q.top().no] -= src[i].arrive - now_time; now_time = src[i].arrive; q.push(src[i]); } while(!q.empty()) { now_time += rest[q.top().no]; printf("%d %d\n", q.top().no, now_time); q.pop(); } return 0;}
0 0
- BZOJ 1216 HNOI 2003 操作系统 堆
- 【HNOI 2003】洛谷P2278 操作系统
- BZOJ 1218 HNOI 2003 激光炸弹 模拟
- BZOJ 3144 HNOI 2013 切糕
- HNOI 2013 bzoj 3140 消毒
- HNOI 2013 bzoj 3141 旅行
- HNOI 2013 bzoj 3143 游走
- HNOI 2013 bzoj 3142 数列
- HNOI 2013 bzoj 3144 切糕
- 【BZOJ 4538】【HNOI 2016】网络
- bzoj 1216 操作系统
- bzoj 1216 [HNOI2003]操作系统
- BZOJ 1216: [HNOI2003]操作系统
- bzoj 1216: [HNOI2003]操作系统
- BZOJ 1997 HNOI 2010 Planar 2-SAT
- [BZOJ 1196][HNOI 2006]公路修建问题
- BZOJ 1483 HNOI 2009 梦幻布丁
- BZOJ 3144 HNOI 2013 切糕 最小割
- uva难度分级列表
- CSS和js自动添加版本号
- POJ Challenge Round 5 -- A:magic (物理)
- 第5题作业
- 一张图看懂Android注册登录+服务端
- BZOJ 1216 HNOI 2003 操作系统 堆
- 第三题(对象的序列化)
- JFinal源码走读_5_Validator校验源码分析
- jquery中使用append添加html导致onclick事件失效
- 运行时类型信息RTTI
- the item width must be less than the width of the UICollectionView minus the section insets left and
- 这是我的第一篇CSDN博客
- Spark:利用Eclipse构建Spark集成开发环境
- 笔记:Spark上的机器学习