题: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. axios基础介绍

    axios基础介绍 get请求要在params中定义,post要在data中定义.

  2. cos改ip

    IPADDRIP地址NETMASK子网掩码GATEWAY网关地址 通常,如果我们想更改主机地址为静态地址或者更改主机名,需要修改的几个文件包括:/etc/sysconfig/network Cento ...

  3. SpringCloud学习之大纲总略(大纲篇)

    微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务 ...

  4. 网页嵌 activeXForm 中显示fastReport

  5. request对象和response对象的作用和相关方法

    response对象(响应) 响应行 状态码 :setStatus(int a) 设置状态码 302重定向 304控制缓存 响应头 setHeader() 一个key对应一个value addHead ...

  6. 京东云入选2019年度TOP100全球软件案例 新一代服务治理框架加速行业落地

    11月14日-17日, 2019TOP100全球软件案例研究峰会(TOP100summit)在北京国家会议中心举办.Top100summit是科技界一年一度的案例研究峰会,每年会秉承"从用户 ...

  7. MySQL-TPS,QPS到底是什么

    计算TPS,QPS的方式 qps,tps是衡量数据库性能的关键指标,网上普遍有两种计算方式 TPS,QPS相关概念 QPS:Queries Per Second         查询量/秒,是一台服务 ...

  8. Python说文解字_杂谈01

    1. Python在Ubuntu下面下载Python 2. 安装依赖包 sudo apt-get update sudo apt-get install build-essential python- ...

  9. 01 语言基础+高级:1-3 常用API第一部分_day07【Scanner类、Random类、ArrayList类】

    day07[Scanner类.Random类.ArrayList类] Scanner类Random类ArrayList类 教学目标 能够明确API的使用步骤能够使用Scanner类获得键盘录入数据能够 ...

  10. 虚函数重载(overwrite) 继承覆盖问题

    引言 类接口需要添加默认参数,以适应不同情况调用, 但是clang-tidy 不允许在接口上设置默认参数,ps: 可能担心继承类里接口重新设置新默认参数而导致误用的情况 #include <st ...