C. Voltage Keepsake time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You have n devices that you want to use simultaneously. The i-th device uses ai units of power per second. This usage is…
题目链接 这是一道很棒的二分题. 思路: 首先先思考什么情况下是可以无限的使用,即输出-1. 我们思考可知,如果每一秒内所有设备的用电量总和小于等于充电器每秒可以充的电,那么这一群设备就可以无限使用. 接下来分析不是无限使用的情况: 题目要求的是满足某个情况的最大值. 很像二分的类型,二分题目往往就是求某一个满足情况的最值,这样我们只需要寻找上限和下限,并对每一次mid值进行检验是否满足,这样的模型时间度一般为O(  N*Log( L )) L代表的是总区间的长度,而N代表的是完成一次判定需要的…
题意: 有n台机器,第i台机器每个单位时间消耗ai的功率,初始有bi的功率储备,有一个充电器每个单位时间充p单位的功率 问经过多长时间才能有一个功率位0的机器,如果能够无限使用输出-1: 解析: 时间是实数范围内,所以可以在任何时刻 给任何一个机器充电 所以如果p >= sum(a1 + a2 + a3 + ``` + an) 则能无限使用 如果不能无限使用 那么给所有的机器在不充电的情况下以初始能用多长时间从小到大排序 那么我们首先肯定要给使用时间最小的机器充电,使它用的时间能够大于等于时间第…
题目大意比较简单,就是求一堆(二元组)的异或和. 思路:按位考虑,如果说第k位为1的话,那么一定有奇数个(二元组)在该位为1.二元组内的数是相加的,相加是可以进位的.所以第k位是0还是1,至于k为后边的数有关,所以我们直接(1<<(k+1))取模.取模后每个数的取值范围就是[0,2^(k+1)-1],二元组的取值范围就是[0,2^(k+2)-2]. 先把二元组看成一个数x,x的第k位是1, 那么x的取值范围就是[2^k,2^(k+1)-1]和[2^k+2^(k+1),2^(k+2)-2]. 解…
C. Voltage Keepsake 题目链接:http://codeforces.com/problemset/problem/801/C time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You have n devices that you want to use simultaneously. The i-th dev…
地址:http://codeforces.com/contest/801/problem/C 题目: C. Voltage Keepsake time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You have n devices that you want to use simultaneously. The i-th devi…
C. Voltage Keepsake time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You have n devices that you want to use simultaneously. The i-th device uses ai units of power per second. This usage is…
Codeforces 1165F1/F2 二分好题 传送门:https://codeforces.com/contest/1165/problem/F2 题意: 有n种物品,你对于第i个物品,你需要买\(k_i\)个,每个物品在非打折日买是2块钱,在打折日买是1块钱,每天你可以赚一块钱,现在告诉你一共有m个打折日,在第\(d_i\)天第\(t_i\)种物品打折,问你你最少需要多少天可以买完你需要的物品 题解: 二分 思路是这样的 根据题目的题意,你最多打工4e5天就可以买完所有的物品,所以我们可…
题目链接:http://codeforces.com/contest/801/problem/C 题目大意:给你一些电器以及他们的功率,还有一个功率一定的充电器可以给这些电器中的任意一个充电,并且不计切换充电器的时间,问你最多能够同时使用这些充电器多久,如果可以一直用下去就返回-1.要求时间误差不能超过10^-4. 思路:开始没就见过这种类型的题目傻傻地一点一点把时间加上去....后来知道这是用了二分枚举,首先定义一个右边界(r=1e11根据提目应该大于1e10多一点)和左边界(l=0),然后不…
题目链接:http://codeforces.com/contest/801/problem/C 题意:给出一个充电器每秒钟充p个点,还有n个电器要同时使用a[i]表示第i个电器每秒钟用多少点,b[i]表示第i个 原来存了都少电.充电器可以无缝切换这充电,但是只能给一个充(同一时间).最后问你最长可用多久,如果可以 无限时间的用的话,就输出-1. 题解:首先确定一下什么时候输出-1也就是可以无限充电的情况,就是p大于所有a的总和就行. 然后就是时间有限的情况.这里明确一个式子. need*t=a…