The sol to print

news/2024/11/17 17:22:15/文章来源:https://www.cnblogs.com/yingxilin/p/18550768

The sol to print

https://oier.team/problems/93

思路

用两个优先队列。
一个用于存储没有打印任务的打印机,一个存储有任务的打印机。
如果有打印机没有打印任务直接选择里面最小的。
否则,找到等待时间最小的那一个。

Code

#include<bits/stdc++.h>
using namespace std;
const int maxn = 200010;
#define int long long
int n,m;
struct node{int s,t,id;}a[maxn];
bool cmp(node &A,node &B){return A.t<B.t;}
struct print{int id,t;bool operator < (const print &x)const{return t==x.t ? id>x.id : t>x.t;}
};    
priority_queue <print> q;
priority_queue <int,vector<int>,greater<int> > v;
priority_queue <int,vector<int>,greater<int> > ans[maxn];
int read(){int x=0,f=1;char c=getchar_unlocked();while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar_unlocked();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar_unlocked();}return x*f;
}
signed main(){freopen("print.in","r",stdin);freopen("print.out","w",stdout);int n = read(),m = read();for(int i = 1;i <= n;i++) a[i].s = read(),a[i].t = read(),a[i].id=i;sort(a+1,a+1+n,cmp);for(int i = 1;i <= m;i++) v.push(i);for(int i = 1;i <= n;i++){while(q.size() && q.top().t <= a[i].t)v.push(q.top().id),q.pop();if(v.empty()) ans[q.top().id].push(a[i].id),q.push({q.top().id,q.top().t+a[i].s}),q.pop();else ans[v.top()].push(a[i].id),q.push({v.top(),a[i].s+a[i].t}),v.pop();}for(int i = 1;i <= m;i++){printf("%d ",ans[i].size());for(int j = 0;j < ans[i].size();j++){while(!ans[i].empty()){printf("%d ",ans[i].top());ans[i].pop();}      }printf("\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

联邦学习开山之作Communication-Efficient Learning of Deep Networks from Decentralized Data

1 介绍 1.1 背景 越来越多的手机和平板电脑成为许多人的主要计算设备。这些设备上强大的传感器(包括摄像头、麦克风和GPS),加上它们经常被携带的事实,意味着它们可以访问前所未有的大量数据,其中大部分本质上是私人的。根据这些数据学习的模型持有承诺通过支持更智能的应用…

高级语言程序设计课程第7次个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C/ 高级语言程序设计课程第7次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400128 姓名:吴俊衡 1: 问题:无2: 问题:刚开始没想出来怎么弄,后面递归不会就用了多个for循环3:…

TYPE-C PD浅谈(四)

TYPE-C PD浅谈(四) 当对接识别完成后,Provider会先在VBUS上提供5V,接着会在CC脚位上送出Source Capability(SRC_CAP),格式如下:内容定义了供电的各种选项,如共有几组电源可选,相对应的电压电流等。 当Consumer接收到SRC_CAP封包后,会针对电源列表的内容,挑选一组电压…

STM32F103开发

本节我们将会对STM32的硬件资源进行介绍,包括如下内容:点亮LED; 检测按键按下和松开事件; 串口; 点亮128*128 TFT_LCD液晶屏;一、点亮LED 1.1 电路原理图 LED电路原理图如下图所示:其中:LED1连接到PA8`引脚,低电平点亮; LED2连接到PD2引脚,低电平点亮;1.2 GPIO引脚…

团队项目Scrum冲刺-day7

一、每天举行站立式会议 站立式会议照片一张昨天已完成的工作成员 任务陈国金 协助代码沙箱Docker实现凌枫 创建题目页面陈卓恒 协助开发创建题目页面谭立业 协助开发创建题目页面廖俊龙 接口测试曾平凡 前端页面测试曾俊涛 代码沙箱Docker实现薛秋昊 协助代码沙箱Docker实现今…

爱码单车队-冲刺日志第四天

会议记录:今天主要是投入一些后端的开发任务,然后开始实现基础的登录绑定用户的功能。

2024-2025-1 20241314 《计算机基础与程序设计》第八周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第八周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 2024-2025-1计算机基础与程序设计第八周作业这个作业的目标 功能设计与面向对象设计 面向对象设计过…

bolt.new只要5分钟就能完成1个网站,神奇惊艳

下面是我用bolt.new5分钟完成的首页,前端页面配色和css都很好看,我觉得很惊艳啦!网站截图如下# 网站介绍生成随机yes或者no答案的网站,每次点击oracle按钮,可以生成yes或者no的随机答案,帮助选择困难症用户,轻松选择yes还是no 网站网址https://yesnooracle.dev 功能特点…

2024-2025-1 20241415《计算机基础与程序设计》第八周学习总结

如2024-2025-1 20241415 《计算机基础与程序设计》第八周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第八周作业这个作业的目标 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要…

爱码单车队-冲刺日志第二天

会议记录:在第二天的冲刺中,团队成员在接口文档设计与前端框架方面取得了一定进展。经过小组的共同努力,确定了前段设计与后端对接的接口, 为后续的开发工作奠定了基础。虽然目前前端设计与预期原型存在较大差距,但基本功能已经得以实现。 接下来,团队将继续优化功能,并…

猿人学web端爬虫攻防大赛赛题第20题——2022新春快乐

题目网址:https://match.yuanrenxue.cn/match/20 解题步骤解题之前需要先了解wasm是什么:https://docs.pingcode.com/ask/294587.html看数据包。sign是一串加密的字符串,t一看就是时间戳。全局搜索api/match/20,只有一处。打断点,触发。看下sign的生成逻辑。 "sign&q…

[Tricks-00004]CF1954F(自己胡的 trick,被 Burnside 完爆)

介绍下自己的离奇思路: 先读清楚题意!要求是旋转等价,即两个以 \(c\) 个 \(1\) 开头,总 \(1\) 个数不超过 \(k+c\) 的字符串算一种。 那怎么刻画"只算一种"这个条件呢?一个想法可以是,对每个字符串赋一个权值,一种字符串的权值即旋转出来的每个合法的,把它们…