二分查找
二分算法
思维在奔跑
这个作者很懒,什么都没留下…
展开
-
Acwing 789. 数的范围
给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。 对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。 如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组。 接下来q行,每行包含一个整数k,表示一个询问元素。 输出格式 共q行,每行包含两个整数,表示所求...原创 2020-04-25 10:50:12 · 219 阅读 · 0 评论 -
Acwing 1227. 分巧克力
儿童节那天有 K 位小朋友到小明家做客。 小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。 切出的巧克力需要满足: 形状是正方形,边长是整数 大小相同 例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。 当然小朋友们...原创 2020-04-24 21:55:49 · 135 阅读 · 0 评论 -
Acwing 730. 机器人跳跃问题
机器人正在玩一个古老的基于DOS的游戏。 游戏中有N+1座建筑——从0到N编号,从左到右排列。 编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位。 起初,机器人在编号为0的建筑处。 每一步,它跳到下一个(右边)建筑。 假设机器人在第k个建筑,且它现在的能量值是E,下一步它将跳到第k+1个建筑。 如果H(k+1)>E,那么机器人就失去H(k+1)-E的能量值,否则它将得到E...原创 2020-04-24 21:31:54 · 272 阅读 · 0 评论 -
Acwing 790. 数的三次方根
给定一个浮点数n,求它的三次方根。 输入格式 共一行,包含一个浮点数n。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留6位小数。 数据范围 −10000≤n≤10000 输入样例: 1000.00 输出样例: 10.000000 思路分析 浮点数二分模板题 #include<bits/stdc++.h> using namespace std; double n;...原创 2020-04-24 20:40:58 · 147 阅读 · 0 评论 -
[模板]二分查找
二分 整数二分 模板: // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:(区间是右半段) int bsearch(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()...原创 2020-04-24 20:39:09 · 104 阅读 · 0 评论
分享