
二分
wtcl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
奇妙养乐多(二分 )
答案具有单调性 多考虑二分 这道题最大的坑是他爆ll 。。。 做题的时候要特意计算一下是否会爆int,爆ll #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; #define ll long long const int N=1e6+100; ll a[N];int n;ll k;ll m; bool check(ll x原创 2020-08-31 11:49:57 · 395 阅读 · 0 评论 -
Hard Process(二分+前缀和)
1.求最值问题考虑二分 2.一维数组多想想前缀和 3.一维数组区间问题可以考虑双指针(尺取):枚举右端点,求左端点 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int a[1000001],sum[1000001]; int n,k; bool check(int x) { for(int i=1;i+x-原创 2020-07-05 20:31:43 · 299 阅读 · 0 评论 -
ZYB s Premutation HDU 5592(树状数组+二分)
题意:给定数组每个数前面(包括这个数)的逆序对数量,求原数组的值 思路: 1.a[i]-a[i-1]可以得到该数的之前比它大的数的数量 2.从后往前遍历,只需要求出数组的第(a[i]-a[i-1]+1)大的数就是该位的值, 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=5e4+10; i原创 2020-06-29 12:22:58 · 145 阅读 · 0 评论 -
Educational Codeforces Round 87 (Rated for Div. 2)D. Multiset(树状数组)
题目链接:https://codeforces.ml/contest/1354/problem/D 思路:树状数组+二分 树状数组其实就是动态维护前缀和的一种数据结构 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1e6+10; int s[N]; int c[N]; int n,q;原创 2020-05-19 00:38:01 · 165 阅读 · 0 评论 -
二分总结
二分模板一共有两个,分别适用于不同情况。 算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。 二分问题有两种类型 1.求满足某个条件的最大值 r=mid l=mid+1; 2.求满足某个条件的最小值 l=mid r=mid-1; 1.当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1。 存在无解的情况设区间为[1,n+1]; int bsearc原创 2020-05-18 11:57:33 · 134 阅读 · 0 评论 -
CodeForces - 208E(二分 倍增)
讲解:https://blog.youkuaiyun.com/qq_45458915/article/details/102960953 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> using namespace ...原创 2020-04-09 14:40:19 · 150 阅读 · 0 评论 -
Telephone Lines POJ - 3662
1.看到至少可以考虑一下二分 2.题目要求的是第k+1大。 二分的要求是答案及答案的一侧都满足要求。 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<queue> using namespace std; int head...原创 2019-11-13 13:45:11 · 122 阅读 · 0 评论 -
Trailing Zeroes (III) LightOJ - 1138
题意:给你一个n问你多少的阶乘末尾0位n个。 根据算术基本定理,可以得到x = 2 ^ a *3^b*5^c.... 只有当2 和 5 出现的时候才能出想0,因为2 的个数肯定比5多,所以对于每个5,都能使结果多一个0。于是只要求到n! 中有多少个5 个数,但是对于n! 来讲,无法直接求到它的值,需要通过一些方法来解决; 用到了一个数论知识: 若p是质数,p<=n,则n!是p的倍数,设p^x...原创 2019-09-18 14:40:31 · 131 阅读 · 0 评论