题:https://www.cometoj.com/problem/1046

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
int id,daoda,xiaohao,val;
bool operator<(const node &b)const{
if(val==b.val)
return daoda>b.daoda;
return val<b.val;
}
};
struct NODE{
int id,ti;
};
vector<NODE>ans;
priority_queue<node>que;
int main(){
node p;
int lasttime=;
while(~scanf("%d%d%d%d",&p.id,&p.daoda,&p.xiaohao,&p.val)){
if(que.empty()){
lasttime=p.daoda;
que.push(p);
continue;
}
//cout<<"!!!!"<<endl;
int sumti=p.daoda-lasttime;
int curti=lasttime;
node u;
NODE q;
while(!que.empty()&&sumti>=que.top().xiaohao){
u=que.top();
que.pop();
sumti-=u.xiaohao;
curti+=u.xiaohao;
q.id=u.id;
q.ti=curti;
ans.push_back(q);
}
if(!que.empty()&&sumti!=){
u=que.top();
que.pop();
u.xiaohao=max(,u.xiaohao-sumti);
curti+=u.xiaohao;
if(u.xiaohao>)
que.push(u);
else{
q.id=u.id;
q.ti=curti;
ans.push_back(q);
}
}
que.push(p);
lasttime=p.daoda;
}
while(!que.empty()){
//cout<<"!!"<<endl;
node u=que.top();
que.pop();
NODE q;
q.id=u.id;
q.ti=lasttime+u.xiaohao;
ans.push_back(q);
lasttime+=u.xiaohao;
}
for(int i=;i<ans.size();i++){
printf("%d %d\n",ans[i].id,ans[i].ti);
}
return ;
}

[HNOI2003]操作系统 优先队列用法的更多相关文章

  1. BZOJ 1216: [HNOI2003]操作系统( 优先队列 )

    按题意用priority_queue模拟即可 ---------------------------------------------------------------------- #inclu ...

  2. 【BZOJ 1216】 1216: [HNOI2003]操作系统 (模拟+优先队列)

    1216: [HNOI2003]操作系统 Description 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自 ...

  3. bzoj1216 [HNOI2003]操作系统

    1216: [HNOI2003]操作系统 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 751  Solved: 419[Submit][Status ...

  4. BZOJ1216[HNOI2003]操作系统 [模拟 优选队列]

    1216: [HNOI2003]操作系统 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 754  Solved: 421[Submit][Status ...

  5. bzoj1216 操作系统(优先队列模拟)

    1216: [HNOI2003]操作系统 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1172  Solved: 649[Submit][Statu ...

  6. [Luogu P2278] [HNOI2003]操作系统

    题面 传送门:https://www.luogu.org/problemnew/show/P2278 Solutiton 挺简单的一道模拟题,拿堆模拟一下题目意思就好 堆中有两个关键字,分别是优先级和 ...

  7. [HNOI2003]操作系统(优先队列,堆排序)

    题目描述 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则优先级越高. 如果一个进程到达的时 ...

  8. Luogu P2278 [HNOI2003]操作系统【优先队列/重载运算符/模拟】 By cellur925

    题目传送门 本来是照着二叉堆的题去做的...没想到捡了个模拟...不过模拟我都不会...我好弱啊... 其实核心代码并不长,比辰哥的标程短到不知哪里去...但是思路需要清晰. 读题的时候我明白,当有优 ...

  9. PriorityQueue优先队列用法入门

    PriorityQueue是队列的一种,它叫做优先队列,该类实现了Queue接口. 之所以叫做优先队列,是因为PriorityQueue实现了Comparator这个比较接口,也就是PriorityQ ...

随机推荐

  1. 在h5页面上添加音乐播放

    接到需求说要做一个h5轮播图,同时配上背景音乐. Html部分: <!--音乐开始--> <div id="music"> <div id=" ...

  2. tensorflow---darknet53

    #! /usr/bin/env python# coding=utf-8#=============================================================== ...

  3. (day 1)创建项目--3【创建应用】

    创建步骤 1.打开命令行,进入项目中manage.py的同级目录 2.在命令行输入 python manage.py startapp blog 3.添加应用名到settings.py的INSTALL ...

  4. 80.常用的返回QuerySet对象的方法使用详解:order_by

    order_by: 将模型生成的表按照某个字段进行排序,默认情况下,按照升序的顺序排序,如果想要按照降序的顺序排序可以在字段的前面加一个"-",加一个负号就可以进行反转. mode ...

  5. 步进电机加减速S曲线算法

    一.Sigmoid 函数 1.1 Sigmoid函数原型 1.2 sigmoid函数波形: 由图形可看出在-10时已经接近于0,一般取值区间在[-5,5]. 1.3 sigmoid函数的导数 转载CS ...

  6. 寒假day16

    今天优化了管理员界面,人才标签模块遇到了一点问题,部分结果无法显示,正在寻找原因

  7. android 根据距离区分 点击跟滑动事件

    public void onClick(View v) { if (isclick) Log.i(TAG, "onclick"); } }); } float distance = ...

  8. C#——反射,自动生成添加的SQL语句

    C#中的反射.是C#中特别重要也是特别神奇的特性,对后面学习框架,了解框架的原理.以及自己写框架,都是必不可少的.学习反射的过程中.总给我一种茅塞顿开的感觉,以前不懂的,现在懂了 反射的介绍:http ...

  9. mysql my.cnf常用的配置

    [mysqld]basedir = /usr/local/mysql/datadir = /usr/local/mysql/dataport = 3306pid-file = /usr/local/m ...

  10. c语言的各种技巧

    一.参考网址 1.参考网址1:C 语言的奇技淫巧 二.