[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 ...
随机推荐
- Sequence Models Week 1 Building a recurrent neural network - step by step
Building your Recurrent Neural Network - Step by Step Welcome to Course 5's first assignment! In thi ...
- html标签title属性效果优化
html标签title属性效果不友好,最致命的是响应慢,体验不好,JQuery-UI提供了很好的支持.在jquery.tip的基础上又做了修改,这样子定制效果更强. 代码如下: <!DOCTYP ...
- LeetCode——221. 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 暴力法 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:函数参数
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Nginx和php交互的两种方式
Unix socket 也叫IPC socket 也就是进程间通信套接字用于同一台主机上的不同进程间交换数据 TCP socket IP socket要利用主机的传输层(tcp),可以用于同一台主机 ...
- 2020/1/29 PHP代码审计之进一步学习XSS【持续更新】
0x00 上午学习了XSS漏洞,中午吃饭想了想,还是思考的太浅层了,这种老生常谈的东西对于现在的我意义不大.现在我需要的是思考.于是就有了这个随笔.在本文中,我会持续更新一些XSS的深入思考,payl ...
- VUE,index key v-for
列表渲染语法 v-forv-for 循环对象 <article v-for="(item, key, index) of info">{{item}} {{key}} ...
- 腾讯一shell试题.
腾讯一shell试题. 假设qq.tel文件内容: 12334:13510014336 12345:12334555666 12334:12343453453 12099:13598989899 12 ...
- Python使用+和*操作符 连接2个列表和列表的复制
+ 操作符通常连接两个列表可以使用 +进行连接得到一个新列表 *操作符择可以用于一个列表和一个整数,实现列表的复制.
- php随机生成国内IP
public function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255. ...