D.Stressful Training

题意

有n台电脑,第i台初始电量为aia_iai​,每分钟消耗电量为bib_ibi​,现在要购买一个充电器,每分钟可以让一个电脑的电量增加XXX,比赛一共持续k分钟,充电器在一分钟之内只能给一个电脑充电,问能让所有学生成功完成比赛的最小的XXX(比赛中途不能出现电量小于000,如果恰好在最后一分钟电量为负,也算成功完成)。

做法

首先这个我们把这个kkk减111,因为最后一分钟是无效的,我们不需要考虑,之后我们知道这个答案肯定是可以二分的,所以先二分答案,之后对于每个当前选择的功率,去算每个电脑要在哪些时刻必须充电,在这些时刻标记上,如果被标记的次数和超过kkk,表示最后一分钟之前需要充电的电脑数已经超过kkk,直接返回false,如果总次数不超过k,我们就用sum[i]表示到i为止需要充电的电脑数,只要对于每个i都有i>=sum[i]就可以完成比赛。注意如果在最后一分钟充电不需要算入次数内。

代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5+5;
ll a[maxn],b[maxn],c[maxn];
int n,k;
int sum[maxn];
bool check(ll mid)
{memset(sum,0,sizeof(sum));int tot=k;for(int i=1;i<=n;i++){ll tmp=a[i];if(tmp>=1LL*k*b[i]) continue;while(tmp<1LL*k*b[i]){if(tot==0){if(min(tmp/b[i],(ll)k)+1==k+1) break;else return false;}sum[min(tmp/b[i],(ll)k)+1]++;tmp+=mid;tot--;}}ll cc=0;for(int i=1;i<=k;i++){cc=cc+sum[i];if(cc>i) return false;}return true;
}
int main()
{scanf("%d%d",&n,&k);k--;for(int i=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=1;i<=n;i++) scanf("%lld",&b[i]);ll l=0,r=1000000000000000000,mid;while(l<=r){mid=(l+r)/2;if(check(mid)) r=mid-1;else l=mid+1;}if(l==1000000000000000001)  puts("-1");else printf("%lld\n",l);return 0;
}

【Educational Codeforces Round 61 (Rated for Div. 2) D.Stressful Training】二分相关推荐

  1. Educational Codeforces Round 61 (Rated for Div. 2)(A、B、C、D、E、F)

    欢迎访问本菜鸡的独立博客:Codecho 比赛名称 Educational Codeforces Round 61 (Rated for Div. 2) 比赛链接 https://codeforces ...

  2. Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing 二分 + check

    传送门 文章目录 题意: 思路: 题意: 思路: 直接算不好算,考虑二分这个中位数midmidmid. 考虑如何checkcheckcheck,这个分情况来就好了: (1)mid>a[i].r( ...

  3. 【Educational Codeforces Round 61 (Rated for Div. 2)】A.B.C.D.E.F.G

    前言 这场在最开始很顺利,A题6min1A,B题14min1A,但是由于C题过题人数太少一度认为这个C题很难,等有人过了才开始写最开始的想法,C题40min1A,过C之后发现F过的很多,去看提,发现和 ...

  4. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  5. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  6. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  7. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  8. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  9. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

  10. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环

    传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...

最新文章

  1. 量化网络训练--Towards Effective Low-bitwidth Convolutional Neural Networks
  2. 【剑指offer】用两个栈实现一个队列
  3. 关于使用REST API
  4. 【NLP实战】tensorflow词向量训练实战
  5. 尚学堂Spring视频教程(二):Spring控制反转
  6. 01 c++常见面试题总结
  7. POJ 1904 【强连通分量】.cpp
  8. 使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署
  9. svm机器学习算法_SVM机器学习算法介绍
  10. Python读写文件的路径,关于os.chdir(path)位置对程序的影响,
  11. TensorFlow 教程 --进阶指南--3.7自定义数据读取
  12. 汝把公司搞死了,不批汝批谁?
  13. 银行卡号 归属地大全
  14. hmcl手机版下载_hmcl启动器正版-hmcl启动器手机版下载hmclv1.0.0-七度网
  15. 有限差分法求解偏微分方程
  16. 本科三级专业目录计算机类,大学本科专业目录
  17. XiaoXin 13Pro-Hackintosh 小新13pro崇尚极简的黑苹果双系统
  18. Python解析XML文档
  19. golang读取EXIF orientation标记
  20. 2019年3月6日-KS103的使用

热门文章

  1. 利用cookie实现搜索记录
  2. 深入浅出 - Android系统移植与平台开发(四)- Android启动流程
  3. Android中获取系统所认为的最小滑动距离TouchSlop
  4. FinalShell连接VM出现channel is not opened.
  5. Photoshop2022全版本软件安装包(附图文教程、windows\mac系统全版本软件)
  6. [ 树形DP ] BZOJ4987
  7. 实验二 数字类型及其操作(新)
  8. MOOC中国大学慕课C语言期末编程试题
  9. delphi网络时间校对
  10. 私人用的红帽linux,红帽宣布为个人开发者提供16个RHEL免费许可 支持在生产环境中使用...