[HNOI2003]操作系统 优先队列用法
题: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]操作系统 优先队列用法的更多相关文章
- BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
按题意用priority_queue模拟即可 ---------------------------------------------------------------------- #inclu ...
- 【BZOJ 1216】 1216: [HNOI2003]操作系统 (模拟+优先队列)
1216: [HNOI2003]操作系统 Description 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自 ...
- bzoj1216 [HNOI2003]操作系统
1216: [HNOI2003]操作系统 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 751 Solved: 419[Submit][Status ...
- BZOJ1216[HNOI2003]操作系统 [模拟 优选队列]
1216: [HNOI2003]操作系统 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 754 Solved: 421[Submit][Status ...
- bzoj1216 操作系统(优先队列模拟)
1216: [HNOI2003]操作系统 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1172 Solved: 649[Submit][Statu ...
- [Luogu P2278] [HNOI2003]操作系统
题面 传送门:https://www.luogu.org/problemnew/show/P2278 Solutiton 挺简单的一道模拟题,拿堆模拟一下题目意思就好 堆中有两个关键字,分别是优先级和 ...
- [HNOI2003]操作系统(优先队列,堆排序)
题目描述 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自然数表示,数字越大,则优先级越高. 如果一个进程到达的时 ...
- Luogu P2278 [HNOI2003]操作系统【优先队列/重载运算符/模拟】 By cellur925
题目传送门 本来是照着二叉堆的题去做的...没想到捡了个模拟...不过模拟我都不会...我好弱啊... 其实核心代码并不长,比辰哥的标程短到不知哪里去...但是思路需要清晰. 读题的时候我明白,当有优 ...
- PriorityQueue优先队列用法入门
PriorityQueue是队列的一种,它叫做优先队列,该类实现了Queue接口. 之所以叫做优先队列,是因为PriorityQueue实现了Comparator这个比较接口,也就是PriorityQ ...
随机推荐
- axios基础介绍
axios基础介绍 get请求要在params中定义,post要在data中定义.
- cos改ip
IPADDRIP地址NETMASK子网掩码GATEWAY网关地址 通常,如果我们想更改主机地址为静态地址或者更改主机名,需要修改的几个文件包括:/etc/sysconfig/network Cento ...
- SpringCloud学习之大纲总略(大纲篇)
微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务 ...
- 网页嵌 activeXForm 中显示fastReport
- request对象和response对象的作用和相关方法
response对象(响应) 响应行 状态码 :setStatus(int a) 设置状态码 302重定向 304控制缓存 响应头 setHeader() 一个key对应一个value addHead ...
- 京东云入选2019年度TOP100全球软件案例 新一代服务治理框架加速行业落地
11月14日-17日, 2019TOP100全球软件案例研究峰会(TOP100summit)在北京国家会议中心举办.Top100summit是科技界一年一度的案例研究峰会,每年会秉承"从用户 ...
- MySQL-TPS,QPS到底是什么
计算TPS,QPS的方式 qps,tps是衡量数据库性能的关键指标,网上普遍有两种计算方式 TPS,QPS相关概念 QPS:Queries Per Second 查询量/秒,是一台服务 ...
- Python说文解字_杂谈01
1. Python在Ubuntu下面下载Python 2. 安装依赖包 sudo apt-get update sudo apt-get install build-essential python- ...
- 01 语言基础+高级:1-3 常用API第一部分_day07【Scanner类、Random类、ArrayList类】
day07[Scanner类.Random类.ArrayList类] Scanner类Random类ArrayList类 教学目标 能够明确API的使用步骤能够使用Scanner类获得键盘录入数据能够 ...
- 虚函数重载(overwrite) 继承覆盖问题
引言 类接口需要添加默认参数,以适应不同情况调用, 但是clang-tidy 不允许在接口上设置默认参数,ps: 可能担心继承类里接口重新设置新默认参数而导致误用的情况 #include <st ...