二分
wtcl
这个作者很懒,什么都没留下…
展开
-
奇妙养乐多(二分 )
答案具有单调性 多考虑二分这道题最大的坑是他爆ll 。。。做题的时候要特意计算一下是否会爆int,爆ll#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define ll long longconst int N=1e6+100;ll a[N];int n;ll k;ll m;bool check(ll x原创 2020-08-31 11:49:57 · 363 阅读 · 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 · 263 阅读 · 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 · 115 阅读 · 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 · 135 阅读 · 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 · 111 阅读 · 0 评论 -
CodeForces - 208E(二分 倍增)
讲解:https://blog.csdn.net/qq_45458915/article/details/102960953#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>using namespace ...原创 2020-04-09 14:40:19 · 114 阅读 · 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 · 100 阅读 · 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 · 101 阅读 · 0 评论