https://www.luogu.org/problemnew/show/P2278

题解:

一个是还未开始的进程,另一个是按照优先级排序的等待进程;

每次做时比较两个序列的队头,如果是当前在运行的进程先结束,

则把此进程输出,并将其弹出优先队列;如果是下一个进程要开始,

则先结算当前在运行的进程的剩余时间,并将下一个进程加入优先队列;

(原来endl和‘\n’真的有本质的区别)

/*
*@Author:   STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=1500000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k;
int ans,cnt,flag,temp,sum;
int a[N];
char str;
struct node{int id,start,time,rank;bool operator <(const node &S)const{if(rank==S.rank)return start>S.start;return rank<S.rank;}
}e[N],tmp;
priority_queue<node>q;
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endifios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){cnt++;while(~scanf("%d%d%d%d",&e[cnt].id,&e[cnt].start,&e[cnt].time,&e[cnt].rank))cnt++;//cout<<cnt<<endl;cnt--;int pos=1;int now=1;for(int i=1;i<=cnt;i++){if(q.empty()){q.push(e[pos]);now=max(now,e[pos].start);pos++;}//cout<<q.top().start<<endl;while(now+q.top().time>e[pos].start&&pos<=cnt){tmp=q.top();//cout<<q.top().id<<endl;q.pop();tmp.time=tmp.time-e[pos].start+now;now=e[pos].start;q.push(tmp);q.push(e[pos]);now=max(now,q.top().start);pos++;}now=max(now,q.top().start)+q.top().time;cout<<q.top().id<<" "<<now<<'\n';q.pop();}//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}

[HNOI2003]操作系统相关推荐

  1. P2278 [HNOI2003]操作系统

    题面:https://www.luogu.org/problem/P2278 本题很明显的优先队列,法则是按优先级从大往小排,优先级相同的按开始时间从小往大排,然后就保证了当前队头是正在执行的进程,之 ...

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

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

  3. BZOJ ac100题存档

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

  4. 2019.2-2019.3 TO-DO LIST

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

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

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

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

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

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

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

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

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

  9. 难忘的一天——装操作系统(三)

    谈我此次装机的曲折过程,本来我是打算win7,win8.1,win10这三个系统都装个遍,这样多装几次差不多就会了.刚开始装win7.我就卡壳了. 开始装了,进入了老毛桃的界面,浏览文件选中自己优盘里 ...

最新文章

  1. eclipse插件 android模拟器,关于eclipse:ADT插件中的android模拟器没有运行
  2. P1444 [USACO1.3]虫洞 wormhole,新手向超详细讲解(搜索、判环、拆点、好题)
  3. 关于Mybaits,我总结了10种通用的写法
  4. 100多年了,左右大脑的不对称性依然备受关注
  5. python将视频转为多个gif
  6. Python开发环境Wing IDE如何设置Python路径
  7. 用Jmeter制造软件测试数据
  8. port常用和不常用端口一览表
  9. 关于uWSGI服务器的安装和启动(一)
  10. WPF 放大镜(Magnifying Glass)
  11. 解决:Caused by: java.lang.UnsupportedOperationException: null
  12. 论文浅尝 | 神经网络是如何外推的:从前馈神经网络到图神经网络
  13. PyTorch:tensor-张量维度操作(拼接、维度扩展、压缩、转置、重复……)
  14. 在vs中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足)
  15. 【必修】人工智能原理 学习笔记(二)chapter 2 产生式系统
  16. C语言运算符优先级表详解
  17. 线性代数——矩阵的秩
  18. [CF1421E]Swedish Heroes
  19. 基音周期估计-Yin
  20. 每日一题-917. 仅仅反转字母_Python

热门文章

  1. python库和模块的区别_在函数中导入python库与全局导入之间有何区别?
  2. IDEA2021创建Java Web项目
  3. sql语言和php,SQL语言快速入门(三)_php
  4. axure中的拐弯箭头_Axure 8.0制作水平方向上一直来回移动的箭头
  5. oracle_base,Oracle--基础知识--Oracle 数据库目录 ORACLE_BASE ORACLE_HOME
  6. linux修改重传次数,聊一聊重传次数
  7. 五十二、Java连接Mysql数据库
  8. cmd批处理命令与变量(下)
  9. crt脚本怎么添加等待时间_抖音文案怎么写吸引人?130个抖音文案素材、案例分享!...
  10. 起底商汤校招需求TOP 10岗位 | 智慧城市事业群空宣来了~~