[CF1132D]Stressful Training
题目
传送门 to luogu
题目概要
nnn 台电脑,每台电脑有电量 aia_iai 和耗电量 bib_ibi ,在每秒钟的末尾扣除电量。有一充电器,每次能够充 ccc 的电量,每秒钟的开始可以给一台电脑充电。第 ttt 秒的末尾早于第 t+1t+1t+1 秒的开始。
现在是 000 时刻,也就是第一秒的开始。在第 kkk 秒的末尾,所有电脑都会爆炸,但在此之前,不要让电量变为负数。电量为零是被允许的。第 kkk 秒的末尾时,电脑电量可以为负。
求出满足条件的最小 ccc 。ccc 不存在,输出 −1-1−1 。
数据范围与提示
1≤n,k≤2×1051\le n,k\le 2\times 10^51≤n,k≤2×105 ,1≤ai≤10121\le a_i\le 10^{12}1≤ai≤1012 ,1≤bi≤1071\le b_i\le 10^71≤bi≤107 。
思路
一眼二分答案。现在我们该如何检查?
考虑电量为 aaa 、耗电量为 bbb 时,能够撑多久。显然,如果过了 ttt 天就撑不下去了,一定满足 a−bt<0a-bt<0a−bt<0 即 ⌊ab⌋<t\lfloor\frac{a}{b}\rfloor<t⌊ba⌋<t 。
那么,对于一个电脑,他本来有 aaa 的电量,耗电量为 bbb ,充电器效率为 ccc ,则 xxx 次充电后能撑到 ⌊a+xcb⌋+1\lfloor\frac{a+xc}{b}\rfloor+1⌊ba+xc⌋+1 时刻,所以在这一秒的开始必须给此电脑充电。
因为每一个电脑都要撑到 kkk 时刻,可以将每个最晚充电时间都求出,并塞入桶中。最后检查,如果前 rrr 秒需要充电至少 r+1r+1r+1 次,一定不行。
是否存在 ccc 如何判断?显然最好的情况就是,一次充电就够用,即 c≥bikc\ge b_ikc≥bik ,将这个值代入检查一次即可。或者用其作为二分边界。
代码
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
inline long long readint(){long long a; scanf("%lld",&a); return a;
}const int MaxN = 200005;
long long a[MaxN], b[MaxN];int cnt[MaxN], n, k;
bool check(long long v){for(int i=0; i<k; ++i)cnt[i] = 0;int tot = 0;for(int i=1; i<=n; ++i){long long ne = a[i]/b[i]+1;long long t = a[i];while(ne < k && tot < k){++ tot, ++ cnt[ne];ne = (t += v)/b[i]+1;}if(tot == k) return false;}if(cnt[0]) return false;for(int i=1; i<k; ++i){cnt[i] += cnt[i-1];if(cnt[i] > i)return false;}return true;
}int main(){n = readint(), k = readint();for(int i=1; i<=n; ++i)a[i] = readint();for(int i=1; i<=n; ++i)b[i] = readint();long long L = 0, R = 2000000;R *= R; // R >= 2e16 即可while(L != R)if(check((L+R)>>1))R = (L+R)>>1;else L = (L+R)/2+1;if(!check(L)) puts("-1");else printf("%lld\n",L);return 0;
}
[CF1132D]Stressful Training相关推荐
- Codeforces 刷题记录(已停更)
Codeforces 每日刷题记录 (已停更) 打'+'是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水. Day ID Problem Tutorial Note 1 1 + ...
- 【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过的很多,去看提,发现和 ...
- 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 ...
- Educational-Codeforces-Round-61-ABCDF题解
A.Regular Bracket Sequence 题意 给你四种括号的数量,问是否存在一种组合方式让所有的括号匹配 思路 水题,怎么操作都可以. AC代码 #include <bits/st ...
- tensorflow---alexnet training (tflearn)
# 输入数据 import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)impo ...
- Python如何进行cross validation training
以4-fold validation training为例 (1) 给定数据集data和标签集label 样本个数为 sampNum = len(data) (2) 将给定的所有examples分为1 ...
- HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5
思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...
- [转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别...
转:http://blog.sina.com.cn/s/blog_66f725ba0101bw8i.html 关于语音识别的声学模型训练方法已经是比较成熟的方法,一般企业或者研究机构会采用HTK工具包 ...
- HDU 6051 - If the starlight never fade | 2017 Multi-University Training Contest 2
/* HDU 6051 - If the starlight never fade [ 原根,欧拉函数 ] | 2017 Multi-University Training Contest 2 题意: ...
- Android官方开发文档Training系列课程中文版:OpenGL绘图之应用投影与相机视图
原文地址:http://android.xsoftlab.net/training/graphics/opengl/projection.html##transform 在OpenGL ES环境中,投 ...
最新文章
- 各种门锁的内部结构图_双核CUP,电镀真金把手,0.3秒开锁,欧瑞博智能门锁S2评测...
- finally 关键字
- Java虚拟机:深入详细分析Java ClassLoader原理与源码
- java.rmi.server.port_java.rmi.server.ExportException: internal error: ObjID already in use报错处理...
- PHP框架 CI与TP之MVC比较
- 剑指Offer之第一个只出现一次的字符
- 我的世界javamod怎么装_耐斯地板 | 木地板的铺装方向,你还不知道?
- java中遍历Map几种方法
- ubuntu 编译安装 apache 2.4.3
- 网页设计\网页制作常用软件大全
- 【保姆级教程】使用python实现SIR模型(包含数据集的制作与导入及最终结果的可视化)
- 电信 dns服务器 不稳定,网速不稳定的解决方法:修改本地DNS
- vs2017 git 操作重置、还原、挑拣对比
- 宝塔一键安装php,宝塔管理面板一键安装Tipask3.5版本教程
- 剪辑过的视频md5会改变
- Html5原生video标签禁止全屏播放的实现
- WPF GridSplitter中需要设置HorizontalAlignment和VerticalAlignment
- 算法:非负数组中两个数相与的最大结果
- 开放世界--OpenWorld
- 使用Outlook Mail App滑动操作快速处理邮件
热门文章
- 国际贸易术语解释通则(DEQ 目的港码头交货(……指定目的港))
- UVALive - 4987 Evacuation Plan
- 谁才是商超的救世主?
- linux ssh keygen r,SSH的ssh-keygen命令基本用法详解
- gis怎么通过水库划分子流域_基于HEC-HMS模型推求西江流域巨型水库群区间入流...
- Xmy的第二次python(文件操作)
- 没键盘计算机能启动吗,实现PC电脑无键盘鼠标开机
- 数据库服务器,sql
- 游戏显示无法连接服务器怎么回事,Game Center无法连接服务器怎么办 五种方法任你选择...
- 免流解密之SAOML二开