既约分数蓝桥杯c语言,2021蓝桥杯C++第二届省赛
负载平衡
题目描述
有 \\(n\\) 台计算机,第 \\(i\\) 台计算机的运算能力为 \\(v_i\\)。
有一系列的任务被指派到各个计算机上,第 \\(i\\) 个任务在 \\(a_i\\) 时刻分配,指定计算机编号为 \\(b_i\\),耗时为 \\(c_i\\) 且算力消耗为 \\(d_i\\)。
如果此任务成功分配,将立刻开始运行,期间持续占用 \\(b_i\\) 号计算机 \\(d_i\\) 的算力,持续 \\(c_i\\) 秒。
对于每次任务分配,如果计算机剩余的运算能力不足则输出 \\(-1\\),并取消这次分配,否则输出分配完这个任务后这台计算机的剩余运算能力。
数据范围
\\(1 \\leq n,m \\leq 200000,1 \\leq a_i,c_i,d_i,v_i \\leq 10^9,1 \\leq b_i \\leq n\\)
分析
对于每个时刻被选中的计算机,我们需要知道它此时的算力有多少,而此时的算力在之前可能被消耗过需要恢复,那么我们考虑对于每一个计算机维护一个小根堆,每次分配任务的时候将\\(\\leq a\\)的任务弹出,然后恢复算力,判断即可。
代码
#include
using namespace std;
typedef pair PII;
const int N = 2e5 + 10;
priority_queue ,greater > q[N];
#define mk(x,y) make_pair(x,y)
int n,m;
int v[N];
int a,b,c,d;
int main () {
ios :: sync_with_stdio(false);
cin >> n >> m;
for(int i = 1;i <= n; ++i) {
cin >> v[i];
}
while(m --) {
cin >> a >> b >> c >> d;
while(q[b].size() and q[b].top().first <= a) {
v[b] += q[b].top().second;
q[b].pop();
}
if(v[b] < d) puts("-1");
else {
q[b].push(mk(a + c,d));
v[b] -= d;
printf("%d\\n",v[b]);
}
}
return 0;
}
既约分数蓝桥杯c语言,2021蓝桥杯C++第二届省赛相关推荐
- 蓝桥杯单片机第七届省赛-模拟风扇控制系统
九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...
- 【C语言蓝桥杯每日一题】—— 既约分数
[C语言蓝桥杯每日一题]-- 既约分数
- 十一届蓝桥杯省赛C语言B组——B: 既约分数
[问题描述] 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数.例如,4/3,5/2,1/8,7/1都是既约分数. 请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数 ...
- 蓝桥杯——既约分数(c语言)
目录 一.题目描述 二.思路分析 1.分析题意: 2.解题思路: 三.算法实现 四.算法改进 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如果一个分数的分子 ...
- c语言蓝桥杯。既约分数
如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数.例如,3/4,5/2,1/8,7/1都是既约分数.请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020) #i ...
- 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数
2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...
- 【蓝桥杯Python组】既约分数
[蓝桥杯Python组]既约分数 [问题描述] 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如,34 , 52 , 18 , 71 都是既约分数. 请问,有多少个既约分数,分 ...
- 2020年蓝桥杯省赛题目——既约分数
题目:如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如4/3,8/1,1/7, 都是既约分数. 请问(分子和分母都是 1 到 2020 之间的整数)有多少个既约分数?(包 ...
- python蓝桥杯 既约分数
学习点:辗转相除法求最大公约数 如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数. 例如 3/4 ,1/8, 7/1 都是既约分数. 请问,有多少个既约分数,分子和分母都是 1到 ...
最新文章
- arcgis for server 登陆manager失败解决办法
- 一些非常酷的GAN的应用
- linux 设备驱动程序 过滤,Linux驱动发开,usb设备的probe全过程
- python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了
- proxychains-ng 工作原理分析
- 程序员爬取 5000+ 口红数据,差点比女朋友更懂口红?
- 工欲善其事必先利其器之搜索引擎
- Node.js Error: Cannot find module express
- 有哪些免费软件下载网站,安全靠谱的软件分享网站
- 数模更新篇-3-因子分析模型
- 使用JavaScript实现一个俄罗斯方块
- 小米手机是什么系统?
- ASP.Net+XML打造留言薄
- 【数据库】云数据库rds是什么意思?有什么优势?
- mac outlook删除服务器邮件,设置苹果MAC 端outlook客户端说明
- 深入解读-微信小程序SDK
- prepare for 快手
- 150集Linux网络编程培训视频吐血整理 | 网络基础
- EventLog Analyzer应用程序日志管理
- 史上最全网络安全面试题总结