
CDQ分治
ACM败犬
这个作者很懒,什么都没留下…
展开
-
bzoj 4604 : The kth maximum number(整体二分 套 CDQ分治)
题目大意:有m个操作,操作有两种类型:1是在x,y位置放一个值v,2是询问x1,y1 到x2,y2之间第k大的值是几。解法:第K大可以用整体二分,问题是这里是矩形区间内的第k大,而不是线性序列上的第k大。还是一样的,回忆整体二分:二分答案区间,将操作分开,递归处理左答案区间和右答案区间的操作。插入操作还是一样的,值小于等于mid 放左边,值大于mid 放右边,对于询问操作,我们要求出这个询问操...原创 2019-05-26 19:50:54 · 228 阅读 · 0 评论 -
bzoj 4991 [Usaco2017 Feb]Why Did the Cow Cross the Road III(cdq分治,树套树)
题目大意:有两个1~n的排列,两个排列相等的值连线,问线段相交且两值相差的绝对值大于K的无序对有几个。分析:在纸上按顺序列出两个全排列,有两种做法。树套树:只会树状数组套主席树。树套树可以从左往右依次计算每一个数的贡献,具体做法是从左往右扫第一个排列,然后该元素在第二个排列对应的位置作为下标在权值线段树上更新标记这个数值出现过,并查找在这个位置之后,权值相差大于K的数字个数,就是当前该数字对答...原创 2019-05-22 20:33:35 · 165 阅读 · 0 评论 -
bzoj 3262 :陌上花开 (cdq分治 三维偏序)
题目描述:有n朵花,每朵花有三个属性:花形(s)、颜色©、气味(m),用三个整数表示。现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。Input第一行为N,K (1 <= N <= 100,000, ...原创 2019-05-22 09:26:36 · 198 阅读 · 0 评论 -
洛谷P3157 : 动态逆序对 (cdq分治)
题目大意:对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。分析:这题是树状数组套主席树水题,按顺序加入数字,求出最后的逆序对数,删除数字时只需要删除该数字对答案的贡献,该数字的贡献有两种:位置在它前面值大于它 和 位置在它后面值小于它。用主席树这个东...原创 2019-05-20 20:42:35 · 399 阅读 · 0 评论 -
gym 101964:K - Points and Rectangles(CDQ分治)
题目大意:二维平面上,有 q 个操作,每个操作有两种类型:1:在(x,y)坐标添加一个点2:添加一个矩形区域:左下角是(x1,y1),右上角是(x2,y2)对于每一个操作,输出有多少个pair:(矩形区域,点对) ,点对被包含在矩形区域中。如果当前操作是添加一个矩形区域,答案 = 前面所有矩形区域的答案之和 + 当前矩形区域包括的点的个数。如果当前操作是添加一个点,答案 = 前面所有的...原创 2019-09-23 12:20:11 · 268 阅读 · 0 评论 -
2019 南昌网络赛 I. Yukino With Subinterval(CDQ 分治)
题目大意:有一个数组,支持单点修改:将第 i 个位置的值变成 v。让你查询[L,R]区间内,值域在[x,y] 范围内,连续的段数,连续的段数指值相同位置连续的一段,并且连续段的长度在[L,R]内必须尽可能的长。先对数组预处理,将连续的段缩到左端点,即新建一个数组 b, 若 a[i]!=a[i−1]a[i] != a[i - 1]a[i]!=a[i−1],则b[i]=1b[i] = 1b[i...原创 2019-09-23 14:49:12 · 167 阅读 · 0 评论