E - Magic Powder - 2(二分查找)
该题数据量较大,根据题目答案最大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(二分查找)相关推荐
- 【CodeForces - 670D1 】Magic Powder - 1 (模拟 或 枚举 或二分优化)
题干: This problem is given in two versions that differ only by constraints. If you can solve this pro ...
- Magic Powder - 2
https://codeforces.com/contest/670/problem/D2 The term of this problem is the same as the previous o ...
- codeforce之Magic Powder
题目: The term of this problem is the same as the previous one, the only exception - increased restric ...
- Magic Powder - 1,2
问题 This problem is given in two versions that differ only by constraints. If you can solve this prob ...
- codeforces 670D1 Magic Powder - 1
题目链接:http://codeforces.com/problemset/problem/670/D1 题目:Magic Powder - 1 time limit per test 1 secon ...
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
- LeetCode简单题之二分查找
题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...
- 二分查找模板全面总结
二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...
- 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)
目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...
最新文章
- cocoa 坑爹的委托
- python 开发版-Micropython开发板固件烧写教程
- CodeForces - 1291D Irreducible Anagrams(思维+构造)
- netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了...
- Atom使用方法(快捷键,插件,汉化)
- 巨蟒python全栈开发-第6天 is==
- C 免费窗体控件Krypton Toolkit 4 2 0的使用
- mysql插入删除_mysql插入、更新与删除
- 地图上分成一块一块区域 高德地图_开车用哪个导航最好?看看老司机总结的地图对比,学会不吃亏...
- 算法——X^3+Y^3+Z^3=XYZ(水仙花数)
- web安全day31:人人都要懂的LAMP--apache服务安防配置
- json 字符串和json对象之间相互转换
- 浙江省高考计算机重点知识,2017届浙江省新高考信息技术考试标准
- mysql 5.7插入很慢_MySQL进阶——主从复制
- 物理学报 LaTeX模板(自编)
- 进击的巨人有趣表情包
- 泰凌微8258入门教程 环境篇②——Telink IDE开发环境搭建
- 2018 Google 开发者大会.md
- 7-22 LC老玩游戏 (30 分)
- python自动输入饥荒控制台代码