负载平衡

题目描述

有 \\(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++第二届省赛相关推荐

  1. 蓝桥杯单片机第七届省赛-模拟风扇控制系统

    九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...

  2. 【C语言蓝桥杯每日一题】—— 既约分数

    [C语言蓝桥杯每日一题]-- 既约分数

  3. 十一届蓝桥杯省赛C语言B组——B: 既约分数

    [问题描述] 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数.例如,4/3,5/2,1/8,7/1都是既约分数. 请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数 ...

  4. 蓝桥杯——既约分数(c语言)

    目录 一.题目描述 二.思路分析 1.分析题意: 2.解题思路: 三.算法实现 四.算法改进 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如果一个分数的分子 ...

  5. c语言蓝桥杯。既约分数

    如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数.例如,3/4,5/2,1/8,7/1都是既约分数.请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020) #i ...

  6. 2020年第十一届蓝桥杯 - 省赛 - CC++大学A组 - B.既约分数

    2020年第十一届蓝桥杯-省赛-C&C++大学A组-B.既约分数 Ideas 这题就是简单的暴力枚举,把分子和分母都从1枚举到2020,然后判断分子和分母的的最大公约数是不是1就OK了. 计算 ...

  7. 【蓝桥杯Python组】既约分数

    [蓝桥杯Python组]既约分数 [问题描述] 如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如,34 , 52 , 18 , 71 都是既约分数. 请问,有多少个既约分数,分 ...

  8. 2020年蓝桥杯省赛题目——既约分数

    题目:如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数. 例如4/3​,8/1​,1/7​, 都是既约分数. 请问(分子和分母都是 1 到 2020 之间的整数)有多少个既约分数?(包 ...

  9. python蓝桥杯 既约分数

    学习点:辗转相除法求最大公约数  如果一个分数的分子和分母的最大公约数是 11,这个分数称为既约分数. 例如 3/4 ,1/8, 7/1​ 都是既约分数. 请问,有多少个既约分数,分子和分母都是 1到 ...

最新文章

  1. python购物车程序2019_python购物车程序
  2. [Xcode 实际操作]六、媒体与动画-(3)使用CoreImage框架设置图片的单色效果
  3. BigData之Hive beeline:beeline的简介、使用方法之详细攻略
  4. mysql insert 语句优化_分享insert into语句优化的小技巧
  5. C++动态链接库的制作
  6. IntelliJ IDEA: 无法创建Java Class文件
  7. java开发错误_每个Java开发人员都必须避免的9个安全错误
  8. C++ multimap查找某一个键的所有键值对
  9. java+long是什么_Java中long的模运算符是什么? - java
  10. VUE-PDF VUE的PDF预览组件
  11. php测试数组函数,PHP-数组函数
  12. DEJA_VU3D - Cesium功能集 之 019-军事标绘系列十一:燕尾箭头
  13. 云仓代发货到底是什么?
  14. 基于结构光扫描的生物芯片快速彩色质量监管
  15. 简洁明了的插值音频重采样算法例子 (附完整C代码)
  16. 计算机与网络五十四所有版面费吗,网络与信息化中心财务管理办法(暂行)
  17. 关于PDF加密的算法【PDFium笔记】
  18. 密码学中的中间人攻击
  19. scrapy rule follow的理解和应用
  20. 思科模拟器CIsco Packet Tracer路由器综合路由配置

热门文章

  1. 对接第三方支付接口-类似文件锁的编程小技巧
  2. SVN需要忽略的文件类型
  3. WP7技巧 扩展【共享...】按钮
  4. Ubuntu桌面培训(Ubuntu Desktop Course)中文译本发布
  5. 计算机视觉——图像预处理及边缘检测
  6. php伪数组转换为数组,JavaScript伪数组用法实例
  7. android 发送广播_从0系统学Android--5.2 发送广播
  8. excel进销存管理系统_【实例分享】勤哲Excel服务器做企业进销存财务管理系统...
  9. python3.6配置环境变量_python安裝及环境变量配置
  10. MATLAB并行实现的简单方法