Educational Codeforces Round 61 (Rated for Div. 2) D. Stressful Training

D. Stressful Training
题目大意:
比赛开始每个同学都带了电脑,但没带充电器,已知有n个同学,每个同学电脑剩余电量为a[i],每秒耗电为b[i],比赛时长为k秒。教练买了个充电器,每秒钟可以给一个电脑冲x的电;求最小的x使全体同学完成比赛。ps:第一秒不耗电,最后一秒可以小于0,电量可以为0
大佬解答:
二分答案后发现可以O(nlogn)O(nlogn)判断,想办法卡卡常即可,时间复杂度O(nlognlogs)O(nlognlogs),其中s为答案的范围。
菜鸟思维:
计算x的最小值,可以很容易想到二分;
如何通过mid验证x是否成立呢?
大佬告诉我们可以在电脑电量低于0的时刻,加一,表示此刻到此刻以前电脑至少需要充电一次。维护cnt数组,cnt[i]的前缀和即表示i以前至少要充电n次,如果n>i则表示无法满足充电需求;
那么代码为

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
#pragma warning (disable:4996)
typedef long long LL;
LL a[210000], need[210000];
int b[210000], n, k, cnt[210000];
bool check(LL mid)
{for (int i = 0; i <= k; i++)cnt[i] = 0;int tot = k - 1;for (int i = 1; i <= n; i++){if (!b[i])continue;LL hadtime = a[i];while (hadtime < need[i]){    cnt[hadtime / b[i] + 1]++;hadtime += mid;if (!tot)return false;tot--;}}for (int i = 1; i <= k; i++){cnt[i] = cnt[i] + cnt[i - 1];if (cnt[i] > i)return false;}return true;
}
int main()
{scanf("%d%d", &n, &k);for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++){scanf("%d", &b[i]);need[i] = LL(k - 1)*b[i];}LL left, right, mid, ans = -1;left = 0; right = 2e12;while (left <= right){mid = (left + right) / 2;if (check(mid)){ans = mid;right = mid - 1;}elseleft = mid + 1;}cout << ans << '\n';}

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 61 (Rated for Div. 2)】A.B.C.D.E.F.G

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

  3. 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这个时候两 ...

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

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

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

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

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

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

  7. 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, ...

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

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

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

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

  10. Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aia_iai​,定义一个数组是好的当且仅当对于所有iii都有ai!=ia_i!=iai​!=i.定义f(a)f(a)f(a)表示数组aaa中i& ...

最新文章

  1. 如何学习streamdecoder类_如何学习篇5:强化2种能力——2种学习模式之运动类:隐性学习...
  2. Linux文件系统:概览(思维导图)
  3. 京东11.11大促背后,那些系统架构经历了些什么
  4. 调试笔记--jlink 变量转实时波形小技巧
  5. 虚拟机屏幕界面自适应调整
  6. Matlab中解决出现的错误使用 svmtrain (line 234) Y must be a vector or a character array.问题
  7. docsify and awesome
  8. 我的WCF之旅(13):创建基于MSMQ的Responsive Service
  9. matlab中的qr函数
  10. 10.5 0819吉米牛逼
  11. 阿里云发布首个流式存储与播放解决方案
  12. Log4jx 2.9 后支持进程号输出
  13. 数据库中字段设计与NULL值操作
  14. [Micropython]TPYBoard开发板点亮心形8*8点阵
  15. 【Autosar RTM】
  16. oracle sqlplus客户端,sqlplus下载|oracle sqlplus windows 客户端工具 64位下载 - 3322软件站...
  17. 小白也能搞通UDP通信(88E1111 RGMII 接口)
  18. ipsec 加密流程(一):ipsec策略匹配
  19. 椭圆曲线算法和国密SM2算法介绍
  20. 国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核

热门文章

  1. python爬取公众号之 创建个人微信公众号
  2. 折腾不止的追梦人--个人公众号
  3. matlab实验7符号计算器,MATLAB自学笔记(二十一):符号微积分、积分变换、代数方程以及可视化...
  4. 超好用笔记软件Typora安装教程
  5. apple账号被锁定且密码无法重设
  6. pdf文档页码怎么添加
  7. Linux应用软件的安装包常见三种格式
  8. window11 网络突然就用不了,系统更新网络就用不了了,DNS服务器可能不可用
  9. linux分区btrfs,linux btrfs文件系统及管理
  10. Ajax请求前显示的等待图标