题面:https://www.luogu.org/problem/P2278

本题很明显的优先队列,法则是按优先级从大往小排,优先级相同的按开始时间从小往大排,然后就保证了当前队头是正在执行的进程,之后当一个新的进程要进队时,
就判断它的开始时间和队中的进程的结束时间的大小,然后将能做完的进程都输出并弹出队,之后判断队头和新的进程的优先级,如果队头优先级高就把新的进程放进队,
如果新的进程优先级高就把队头的进程停止,然后计算队头进程的剩余执行时间,再把它放进队,最后把新的进程放进队即可.Code:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#include<ctime>
using namespace std;
struct Node{int id,s,l,f;bool operator < (const Node &a)const{if(f==a.f){return s>a.s;}else{return f<a.f;}}
}a;
long long t;
priority_queue<Node>Q;
int main(){while(~scanf("%d%d%d%d",&a.id,&a.s,&a.l,&a.f)){while(!Q.empty()&&t+Q.top().l<=a.s){Node b=Q.top();Q.pop();printf("%d %lld\n",b.id,t+b.l);t+=b.l;}if(!Q.empty()&&Q.top().f<a.f){Node c=Q.top();Q.pop();c.l=c.l-a.s+t;Q.push(c);t=a.s;}if(Q.empty()){Q.push(a);t=a.s;}else{Q.push(a);}}while(!Q.empty()){Node f=Q.top();Q.pop();t+=f.l;printf("%d %lld\n",f.id,t);}return 0;
}

转载于:https://www.cnblogs.com/ukcxrtjr/p/11541595.html

P2278 [HNOI2003]操作系统相关推荐

  1. [HNOI2003]操作系统

    https://www.luogu.org/problemnew/show/P2278 题解: 一个是还未开始的进程,另一个是按照优先级排序的等待进程: 每次做时比较两个序列的队头,如果是当前在运行的 ...

  2. 2019.2-2019.3 TO-DO LIST

    DP P2723 丑数 Humble Numbers(完成时间:2019.3.1) P2725 邮票 Stamps(完成时间:2019.3.1) P1021 邮票面值设计(完成时间:2019.3.1) ...

  3. 【ReView】 学习日志 from18/11/24 to 19/7/10

    丶分治模板P3806寻找点对,一开始想距离的集合要不要用$set$维护做到$logN$查询,可想一下那样复杂度就会变为$O(MNlog^2N)$想想好像不太对,实际上因为值域比较小所以就直接开长度$1 ...

  4. BZOJ ac100题存档

    不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...

  5. 重走长征路---OI每周刷题记录---12月6日 2014

    总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...

  6. 洛谷P2278操作系统

    题目 这个题是一个名副其实的考验细节和头脑清醒的一个题. 根据提议我们可以进行分类讨论. 我们用优先队列来模拟CPU,我们可以用在线的算法来写,每次输入一个进程都要判断这个进程是否可以挤掉优先队列里的 ...

  7. 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)

    problem 模拟操作系统的进程调度 给定每一个进程的进程号,到达时间,执行时间和运行优先级.(已经按到达时间从小到大排序) 如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束 ...

  8. 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统

    深度操作系统是一个致力于为全球用户提供美观易用.安全可靠的Linux发行版. 深度操作系统基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本.台式机和一体机.深度操作系统( ...

  9. 2022-2028年中国操作系统行业深度调研及投资前景预测报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了操作系统行业相关概述.中国操作系统行业运行环境.分析了中国操作系统行 ...

最新文章

  1. burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据
  2. R语言使用WVPlots包可视化收入与年龄的Hexbin图并叠加平滑曲线实战
  3. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十八) 完美精灵之八面玲珑(WPF Only)②...
  4. 聊一聊:我退钱了!你呢?
  5. UTF-8文本文件头部出现乱码“锘*”的问题及解决方法
  6. [codevs 1916] 负载平衡问题
  7. restful api php,RestfulAPI · ThinkPHP6.0接口开发与应用及uniapp快速入门(更新完毕) · 看云...
  8. CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13
  9. linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)[转]
  10. 开发平台(Platform Builder 和 Embedded Visual C++)简介
  11. linux+极点五笔输入法,Linux技巧之Ubuntu11.04下安装极点五笔输入法
  12. 共建WEB3.0基础设施 NodeSea推出分布式域名后缀 .fil .bzz .xch .iot
  13. 学习笔记 第八周 第二篇(修改版)
  14. Apache web服务器目录结构、发布网站
  15. 【Java】JAVA枚举类型
  16. Neutron 理解 (6): 如何实现虚拟三层网络
  17. 读《不乖教师的正能量》摘抄
  18. 用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)...
  19. 【附源码】Python计算机毕业设计码码科技公司招投标管理系统
  20. [3] 信息收集(六月最佳)

热门文章

  1. HTML5地区自转代码
  2. Gridview 隐藏列
  3. vs2005常用调试快捷键 (转载)
  4. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用
  5. Docker图形化管理工具之Portainer
  6. FOSCommentBundle功能包:基于ACL安全添加角色
  7. 【高并发解决方案】6、数据库水平切分的实现原理解析
  8. malloc和new有什么区别
  9. Linux——vim程序编辑器
  10. log4net使用详解 .