![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
文章平均质量分 80
附魔兔子
这个作者很懒,什么都没留下…
展开
-
算法复习——二分(二分查找,stl lower_bound()、upper_bound()木棒切割,快速幂)
1.二分查找①最基础的快乐查找,需要注意的是如果用mid=(left+right)/2,如果right是int上限一半还多,那么可能导致溢出,使用mid=left+(right-left)/2可以代替以避免溢出哦。②探讨一个新问题:递增序列a是可以重复的,对于想要查找的数字x,求出序列中第一个大于等于x的元素位置l以及第一个大于x的元素位置r,也就是说,x在该序列中的存在区间是[L,R).1).求...原创 2018-07-08 18:42:39 · 560 阅读 · 0 评论 -
CodeForces - 803D. Magazine Ad【二分】
D. Magazine Adtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe main city magazine offers its readers an opportunity to publish their ads. The fo...原创 2018-07-08 21:58:07 · 541 阅读 · 0 评论 -
Gym 101655B Bones’s Battery【二分+floyd】
水题,英语水平太低,题意理解错了,QAQ 汽车是有最高电量的,每到一个学校是加满油到ans值,而不是+ans。任意一个学校到另一个,路上充电次数不能超过k次,问一个学校的充电站最少可以放多少电量。 思路:二分电量,跑floyd判充电次数。 代码: #include<cstdio> #include<cmath> #include<algorithm> ...原创 2019-03-09 20:43:34 · 205 阅读 · 0 评论 -
Gym 102091L Largest Allowed Area【二分】
题意:在一个只有0和1的矩阵里找到一个边长最大的正方形,里面最多只有一个1,求最大的边长。 思路:枚举每个点作为正方形的右下角,预处理出每个点左上角的前缀和,用二分来确定这个点作为右下角时最大的边长,最后所有点的答案取个max即可。 坑点:这题似乎得用读入挂,不然T到爆炸。g++17 t了,g++11和14只需450+ms,不知道为啥。二分边长,再去枚举点会快一点。 代码: #inclu...原创 2019-03-10 17:50:47 · 258 阅读 · 0 评论 -
codeforces 1111C Creative Snap 【二分】
题意:有2的n次方个基地,每个基地有若干人,现在要毁灭所有基地,有a和b两个值。选择2个及以上基地时,可以将它们一切为二地分别毁灭,如果这里有人,要花费人*b*长度,如果没人,花费a。求毁灭所有基地的最小花费。 思路:排序人的位置后,可以二分得到当前基地l到r的人数,如果没人,这段就就花费a,如果有人就花费 人*b*长度,然后和将这块分开递归上来的花费做比较取min即可。 代码: #inc...原创 2019-03-10 18:00:47 · 221 阅读 · 0 评论