二分
罚时大师月色
努力让更多小白和我一起共同进步
展开
-
AcWing 1236. 递增三元组
AcWing 1236. 递增三元组给定三个整数数组A=[A1,A2,…AN],A=[A1,A2,…AN], A=[A1,A2,…AN],B=[B1,B2,…BN],B=[B1,B2,…BN], B=[B1,B2,…BN],C=[C1,C2,…CN],C=[C1,C2,…CN],C=[C1,C2,…CN],请你统计有多少个三元组 (i,j,k) 满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,…AN。第三行包含 N原创 2021-02-26 21:34:22 · 269 阅读 · 0 评论 -
AcWing 1221. 四平方和 二分
AcWing 1221. 四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序,中间用原创 2021-02-25 22:53:10 · 191 阅读 · 0 评论 -
AcWing 730. 机器人跳跃问题
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-H(k+1)的能量值。游戏目标是到达第N个建筑,在这个过程中能量值不原创 2021-02-25 09:30:07 · 1156 阅读 · 2 评论 -
AcWing 257. 关押罪犯
https://www.acwing.com/problem/content/description/259/闫总的思路很好,把它放在一个二分图当中,二分解决,也就是说,把大于limit的放到二分图左右两部分的中间,观察是否能形成二分图,如果可以形成,说明limit 是可以成立的,二分图的证明方法是染色法时间复杂度是o(N)级别的,非常的不错哈,然后对其进行二分,我觉得y总一说思路,再学一下基础算法,这道题还是很简单的。然后代码如下。#include<iostream>#includ原创 2021-02-20 10:27:01 · 2051 阅读 · 5 评论 -
Acwing 503. 借教室
这道题我刚开始也是想用差分直接解决,但是好像时间复杂度是o(n^2)级别的所以用了一个二分+差分的做法代码如下#include<iostream>using namespace std;const int N=1e6+10;int a[N],b[N],c[N];int s[N],z[N],y[N];int n,m;bool check(int mid){ for(int i=1;i<=n;i++) y[i]=s[i]; for(int i=1;i&l..原创 2021-02-06 10:43:17 · 245 阅读 · 1 评论 -
AcWing 790. 数的三次方根
刚开始看到这个还是有点懵的,后来说是二分,我就想到了浮点二分,浮点二分都是基础的基本知识,我的栏目也有,有兴趣可以关注一下,有模板。最后说一下浮点数的比较(两个浮点数相等是用相差是否小于eps)eps设题目要求的精度+2。本题给了6,就设eps=1e-8直接上代码吧。#include<iostream>using namespace std;const double eps=1e-8;int main(void){ double n; cin>>n;.原创 2021-02-05 09:47:22 · 201 阅读 · 0 评论 -
Acwing 789. 数的范围
这道题应该也不算很难,我们首先知道怎么用二分求大于等于某个数的最小下标和小于等于某个数的最大下标,这道题就很简单了,我的二分栏目应该有一个二分模板,我现在拿来给大家看一下。https://www.acwing.com/blog/content/31/转自牛逼的yxc老师说清楚了两个题目要点,其实代码就很清晰了。代码如下#include<iostream>using namespace std;const int N=1e5+10;int g[N];int main(void.原创 2021-02-05 09:39:22 · 519 阅读 · 1 评论 -
AcWing 499. 聪明的质监员(二分+前缀和)
输入样例:5 3 15 1 5 2 5 3 5 4 5 5 5 1 5 2 4 3 3 输出样例:10这道题说实话并不是很难,我刚开始也是想到了二分,但是那个式子确实让我看的一脸懵逼 。后来在老师的代码中才知道,Yi是在Li,Ri区间中求符合wi>=W的个数*符合wi>=W的总价值。求Y与S的最小绝对值。思路就比较好求了,类似于求lower_bound的二分,可以求>=S的最大W,也可以求<=S的最小W然后S两边都有可能是绝对值最小,思路就出来了.原创 2021-02-05 08:34:04 · 195 阅读 · 0 评论 -
每天学会一个二分————浮点二分
Acwing网址:https://www.acwing.com/video/2299/需要注意的情况:若题目中给出保留k位小数,则精度范围是1e-(2+k),例如保留两位小数r-l<1e-4测试样例:3 43 5 4代码:#include<iostream>using namespace std;const int N=1e5+10;int n,k;int l[N];bool check(double mid){ long long cnt=0;原创 2021-01-31 18:15:58 · 156 阅读 · 1 评论