
二分
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
牛客多校4J二分答案连续子段最大平均值
题目Average问题可以转化为 求长度不小于K的子段的最大平均值。POJ2018原题。其中一种比较简单的方法是,二分出答案midmidmid,对原数组每个数减去midmidmid后做前缀和sumsumsum,如果存在一段区间[l,r][l,r][l,r]满足sumr−suml−1>=0sum_r-sum_{l-1}>=0sumr−suml−1>=0,那么最大平均值midmidmid就存在。代码include <bits/stdc++.h>using names原创 2021-07-28 10:25:24 · 367 阅读 · 0 评论 -
abc155d二分答案
题目D - Pairs给一个数组,问 共n∗(n−1)/2n*(n-1)/2n∗(n−1)/2个 两两相乘的数对中,第k小的数是多少。二分答案。二分出答案mid后,怎么计算比mid大的数对数量?对于排序后的数组,例如-5 -3 0 0 1 6 7当ai<=0ai<=0ai<=0时枚举aia_iai,对于所有j>ij>ij>i,ai∗ajai*ajai∗aj满足单调性,可以进行二分。这样就可以求出以aiaiai为数对中一个数时的贡献。当ai>原创 2021-07-26 10:28:32 · 280 阅读 · 0 评论 -
牛客寒假集训营第四场B字符串哈希+二分
题目武辰延的字符串赛时没想到hashO(1)O(1)O(1)判断枚举S1,二分S2长度,利用Hash判断两字符串相等。代码AC代码:/* * @Author: hesorchen * @Date: 2020-11-26 09:12:46 * @LastEditTime: 2021-02-21 16:19:05 * @Description: 栽种绝处的花 */#include <bits/stdc++.h>using namespace std;const unsi原创 2021-02-21 16:23:08 · 179 阅读 · 0 评论 -
跳石头———经典二分
传送门可能是今天状态不好,一个很简单的二分,挺早之前就ac过了,但是今天牛客遇到了,发现写不出来,说明当时还没搞懂。题意不说了,这里就说一下几个点:1.在什么情况下才可以搬掉石头?应该是石头2到石头1的距离小于二分出的答案mid的时候。为什么呢?因为mid是二分出来的答案,也就是最短跳跃距离的最大值,既然他是最短跳跃距离的最大值,那么必然不能存在两个石头的距离小于mid,否则与mid矛盾。2.ans的更新二分算法的几个点,其中一个就是ans的更新,这题ans的更新条件就是搬掉的石头 要小于等于原创 2020-06-09 21:33:45 · 5580 阅读 · 0 评论 -
CodeForces - 51C 修信号站_思维+二分答案
给你x轴上的n个点,可以用三段相同长度的区间进行覆盖,问你这三个区间的最小长度是多少,并输出三段区间的中点。解题思路:前半个问题应该不难,直接二分答案即可,后半个问题则有些思维成分。另外,这题让我明白了,有时候可以用’精度’换’精度’,由于double的精度问题。例如,假设二分后的答案是0.500000,这是保留六位小数的效果,但是,它的实际值可能是0.500000999,这样的话,后续可能出错...原创 2020-04-22 11:24:19 · 5302 阅读 · 0 评论 -
2020NYIST个人积分赛第八场 D _求中位数——模拟+二分查找优化 HDU - 3282
题目大意: 给你n个数,每当输入奇数个数时,就输出前面这些数的中位数。模拟即可,可以用stl库函数upper_bound() 快速求出第一个比当前输入值大的值,将该值已经往后位置的值全部后移一个位置,然后即可得到中位数。 AC代码://https://blog.youkuaiyun.com/hesorchen#include <map>#include <set>#in...原创 2020-04-19 22:00:16 · 4314 阅读 · 0 评论 -
跳石头 二分答案
原题链接题目背景一年一度的“跳石头”比赛又要开始了!题目描述这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 NNN 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由...原创 2020-04-09 10:48:53 · 5381 阅读 · 0 评论 -
NYIST个人积分赛G 二分答案
有n个冰淇淋球,他们的大小一一给出,现在要做冰淇淋,一个冰淇淋必须满足上面的冰淇淋球至少是下面的冰淇淋球的两倍大。现在问你,最多能做多少个由m个冰淇淋球组成的冰淇淋。这种给你所有原料,问你最多能组成多少某物品的题,二分还是比较明显的。但是这题的恶心之处在于check。其实也不难,我们先将冰淇淋球按大小排序,然后开始二分答案。当我们二分出答案是mid,那么我们先将mid个最小的冰淇淋球摆成一排,...原创 2020-04-03 22:55:29 · 5242 阅读 · 0 评论 -
AtCoder E - Sequence Decomposing upper_bound的第四个参数greater<int>()重载运算符
题目传送门这个题 由于没想到位,离AC只差一步。最终还是没写出来。众所周知,sort()默认按递增排序一样,upper_bound()默认用于非严格递增序列。sort函数第三个参数可以重载运算符,只需sort(a,a+n,greater()),这样作用数组就从大到小排序。upper_bound也一样,加上第四个参数greater()之后,就说明,要操作的数组现在是非严格递减的。接下来说...原创 2020-03-15 20:52:55 · 5515 阅读 · 0 评论 -
Hamburgers 二分答案
题目大意:有一种汉堡,用B、S、C三种原料做成,现在告诉你当前有的B、S、C的个数,到商店买的B、S、C的单价(商店无限供应这三种原料),还有你拥有的钱。问最多能做多少个汉堡。刚开始我还以为是模拟,先把能用的用完,再去买。但是写了半天写不下去了,找了一下题解才发现是二分答案板子题。发现自己对二分还是不是很敏感。AC代码://https://blog.youkuaiyun.com/hesorche...原创 2020-03-05 20:15:25 · 5337 阅读 · 0 评论 -
二分答案
二分查找答案应用十分广泛,下面以三个例题为例先来讲讲二分查找答案总所周知,二分法查找一个数的时间复杂度为O(log n),所以在int范围内找一个数最多只需要30余次,在longlong范围内最多也只需要60余次。因此,我们可以利用二分这一优势查找答案。即,每次二分后判断该数是不是满足题目要求。上模板代码:const int N = 0x3f3f3f3f;int main(){ ...原创 2020-01-13 16:32:43 · 5536 阅读 · 0 评论 -
二分
参考博客:传送门有空总结原创 2019-12-23 19:58:44 · 5268 阅读 · 0 评论