![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分治
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
对于『CDQ分治』的简单理解
关于CDQ分治归并排序求逆序对的主要思想就是将一个序列分成两半,保证两边数值的单调性;然后用左边的数值去更新右边的数值。而CDQCDQCDQ分治同样是这样,将某一个序列分成两半,然后用左边的区间更新右边的区间,最终得到了答案。事实上,我们对求逆序对的问题做一个转化:对于每一个数都可以看做是一份数对(x,y),x(x,y),x(x,y),x表示所处的数列中的位置,显然初始的都是1,2,3,......原创 2019-05-08 21:35:51 · 176 阅读 · 0 评论 -
『CDQ分治·树状数组』[CQOI2011]动态逆序对
题目描述对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。题解这道题的主要思路就是求出总的逆序对,然后再去掉某个数时删去这个数带来的贡献。一个数若要对逆序对产生贡献,必须满足一下的两种情况:如果这个数是较小的数,则贡献就是位置比它小,数值比它...原创 2019-05-08 21:51:12 · 136 阅读 · 0 评论 -
『分治·ST算法』区间最大值和
题解首先对于区间 [L,R][L,R][L,R] 来说,若 ax=max(a[i]),i∈[l,r]a_x=max(a[i]),i∈[l,r]ax=max(a[i]),i∈[l,r].则 xxx 的贡献就是跨过点xxx的区间个数×ax\times a_x×ax.即ax×(x−L+1)×(R−x+1)a_x\times(x-L+1)\times(R-x+1)ax×(x−L+1)×(R−x...原创 2019-07-29 18:05:01 · 546 阅读 · 0 评论 -
『分治·GCD』区间GCD和
题解结论:当右端点固定,左端点不固定的区间gcdgcdgcd中,一定有相同的个数不超过log2(n)log2(n)log2(n)段且单调递增的gcdgcdgcd序列。因为nnn分解质因数顶多logloglog个质因子,每次还需要减少不增多,因为上述结论正确。我们每一次都枚举右端点时,动态维护这一个gcdgcdgcd序列,相同部分用左右端点表示即可。即:每一次新加入区间为[i,i][i,i...原创 2019-07-29 19:10:16 · 635 阅读 · 0 评论 -
『平面最近点对』
题解每次找中,记两边分治的答案为ans,将横坐标与中点差ans的节点加入。然后按照y排序,再双重循环枚举,如果纵坐标相差超出了ans就弹出。代码如下:#include <bits/stdc++.h>using namespace std;const int N = 300000;struct node{ double x, y;} a[N];int n;in...原创 2019-07-29 20:09:49 · 100 阅读 · 0 评论 -
『分治』51nod1810:连续区间
题目描述题解考虑分治[L,R][L,R][L,R]内的答案,连续区间一端位于[L,mid][L,mid][L,mid],另一端位于[mid+1,R][mid+1,R][mid+1,R]的答案有多少。其余的递归处理。我们知道一段连续区间的特征是Max−Min=R−L.Max-Min=R-L.Max−Min=R−L.假设Maxi=max(ai,ai+1,...,amid). &nbs...原创 2019-08-20 07:57:59 · 236 阅读 · 0 评论 -
『二维平面分治』 CF364E:Empty Rectangles
题目描述你有一个n*m的01矩阵,现在询问在这其中有多少个子矩阵满足包含k个1,即和为k。题解这道题目是一个矩阵,我们考虑把它放到坐标系中转化为矩形。考虑分治,计算区间(x1,x2,y1,y2)(x_1,x_2,y_1,y_2)(x1,x2,y1,y2)内的答案。我们既可以按照行进行分治,也可以按照列进行分治。因此我们采用行列交替分治的方法对矩形进行分治即可。用参数在dfs里面的...原创 2019-08-20 19:55:45 · 651 阅读 · 0 评论 -
『分治』BZOJ3745 : norma
题目描述题解对于区间最大值最小值问题,考虑分治。求解区间[l,r]的答案,考虑跨越mid的贡献和是多少。如下图:我们考虑枚举这样的区间左端点i,假设:max{ai,ai+1,...,amid}=max\max\{a_i,a_{i+1},...,a_{mid}\}=\maxmax{ai,ai+1,...,amid}=maxmin{ai,ai+1,...,amid}=mi...原创 2019-08-22 08:47:06 · 178 阅读 · 0 评论 -
『毒瘤分治』匹配最大异或
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution这是一道很玄妙的题目,读懂题目都都很难。题目大意:给你一个长度为2m2^m2m的序列p,问有多少长度为nnn的序列xxx任意i满足xpi xor i>xj xor ix_{p_i}\ \mathrm{xor}\ ...原创 2019-09-09 20:52:18 · 291 阅读 · 0 评论