题解:CF644B Processing Queries
CF644B Processing Queries
基本思路
模拟题。
对于每个工作申请,队列有如下两种操作:
首先,将 \(\leq\) 当前开始时间(即 \(t_i\))的所有操作弹出。
接下来有两种选择:
-
当队列已满,直接输出
-1
。 -
当队列未满,更新结束时间并入队,输出新结束时间。
代码实现
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, b, nw;
queue<int> q;
signed main(){
cin >> n >> b;
while(n--){
int t, d;
cin >> t >> d;
while(!q.empty() && q.front() <= t) q.pop();
if(q.size() > b) cout << "-1 ";
else{
nw = max(nw, t) + d;
q.push(nw);
cout << nw << ' ';
}
}
return 0;
}
本文来自博客园,作者:KukCair,转载请注明原文链接:https://www.cnblogs.com/KukCair/p/18564689
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验