该题数据量较大,根据题目答案最大2*10^9,可以通过二分法查找最大做的蛋糕数,用魔法素材把每个材料补充到二分的值需要的素材数,判断总共需要的素材数和k的大小关系进行二分


#include<iostream>using namespace std;typedef long long ll;//int数据会溢出改用long longconst ll maxn = 2e9+5;
ll a[100005],b[100005];
ll n,k;ll search(ll l,ll r){while( l <= r){ll mid = l + r >> 1;ll sum = 0;//sum表示需要的素材数for( ll i = 0 ; i < n ; ++i ){//如果材料不足就补充if(a[i]*mid > b[i]){sum = sum + a[i]*mid - b[i];}//需要素材量超出拥有魔法材料量跳出if( sum > k ){break;}}//需要素材数和拥有魔法素材数相同直接输出答案if( sum == k ){return mid;}//需要素材数比拥有魔法素材数小,说明mid小或者mid是答案但魔法材料溢出
//如果mid是答案,l将不会改变最后输出l-1即可else if(sum < k){l = mid + 1;}//需要素材数比拥有魔法素材数大,说明mid大else{r = mid - 1;}}return l-1;
}int main(){cin >> n >> k;for( ll i = 0 ; i < n ; ++i ){cin >> a[i];}for( ll i = 0 ; i < n ; ++i ){cin >> b[i];}cout << search(0,maxn) << endl;return 0;
}

E - Magic Powder - 2(二分查找)相关推荐

  1. 【CodeForces - 670D1 】Magic Powder - 1 (模拟 或 枚举 或二分优化)

    题干: This problem is given in two versions that differ only by constraints. If you can solve this pro ...

  2. Magic Powder - 2

    https://codeforces.com/contest/670/problem/D2 The term of this problem is the same as the previous o ...

  3. codeforce之Magic Powder

    题目: The term of this problem is the same as the previous one, the only exception - increased restric ...

  4. Magic Powder - 1,2

    问题 This problem is given in two versions that differ only by constraints. If you can solve this prob ...

  5. codeforces 670D1 Magic Powder - 1

    题目链接:http://codeforces.com/problemset/problem/670/D1 题目:Magic Powder - 1 time limit per test 1 secon ...

  6. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  7. LeetCode简单题之二分查找

    题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...

  8. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

  9. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

最新文章

  1. cocoa 坑爹的委托
  2. python 开发版-Micropython开发板固件烧写教程
  3. CodeForces - 1291D Irreducible Anagrams(思维+构造)
  4. netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了...
  5. Atom使用方法(快捷键,插件,汉化)
  6. 巨蟒python全栈开发-第6天 is==
  7. C 免费窗体控件Krypton Toolkit 4 2 0的使用
  8. mysql插入删除_mysql插入、更新与删除
  9. 地图上分成一块一块区域 高德地图_开车用哪个导航最好?看看老司机总结的地图对比,学会不吃亏...
  10. 算法——X^3+Y^3+Z^3=XYZ(水仙花数)
  11. web安全day31:人人都要懂的LAMP--apache服务安防配置
  12. json 字符串和json对象之间相互转换
  13. 浙江省高考计算机重点知识,2017届浙江省新高考信息技术考试标准
  14. mysql 5.7插入很慢_MySQL进阶——主从复制
  15. 物理学报 LaTeX模板(自编)
  16. 进击的巨人有趣表情包
  17. 泰凌微8258入门教程 环境篇②——Telink IDE开发环境搭建
  18. 2018 Google 开发者大会.md
  19. 7-22 LC老玩游戏 (30 分)
  20. python自动输入饥荒控制台代码

热门文章

  1. VSCode 前端必备插件
  2. [React Native]使用App Center CLI发布CodePush更新--iOS简易版
  3. PHP处理 EXCEL 日期格式
  4. nginx正向代理与反向代理的配置
  5. 通达信交易接口:让交易更高效
  6. Linux入职基础-4.1_简介微型计算机的组成结构
  7. 第九课 Shell基础
  8. Mac完全删除Vagrant
  9. Mac电脑使用:删除Mac已保存的WiFi连接
  10. 【数学建模】图论模型(基础理论+最大流与最小费用流问题)