数据结构 cdq分治
文章平均质量分 88
Fsss_7
这个作者很懒,什么都没留下…
展开
-
bzoj3295: [Cqoi2011]动态逆序对
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295题意:中午题。分析:本来打算练习cdq分治的,明天补吧。不过看到这题一眼就想用可持久化线段树,不过带修改的可持久化线段树开销有点大,变了一种方法卡了点空间才过。详见代码。O(nlogn*logn)。代码:#include#include#include#include原创 2016-04-24 23:31:29 · 630 阅读 · 0 评论 -
bzoj2738: 矩阵乘法
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2738题意:中文题。分析:将矩阵中所有元素按值大小从小到大排序,然后将询问离线,我们将n*n个数和q个询问同时分治,每次分治有(l,r,L,R)表示大小排名在l到r之间的数包含了询问L到R的答案。当l==r的时候就能找到答案啦,记得用二维树状数组维护一下矩阵中的元素个数。O(n*nlog原创 2016-05-12 00:28:52 · 390 阅读 · 0 评论 -
bzoj2527: [Poi2011]Meteors
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2527题意:中文题。分析:整体二分的题,设函数div(l,r,L,R)分治解决,含义为询问L到询问R的答案在操作l到操作r中,然后分治求解。本题需要注意的地方:(1)因为操作的是区间且区间较大,不能直接对每个操作暴力处理这个区间,应该用树状数组将操作的量减小。(2)因为在树状数组中存的量原创 2016-05-16 22:08:10 · 358 阅读 · 0 评论 -
bzoj1176: [Balkan2007]Mokia
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1176题意:中文题。分析:cdq分治第一题。还是仔细分析下细节吧。首先我们确定这题的类型:范围很大,询问很少。一般这样的题我们可以从询问的角度切入,然后找到好的复杂度情况的解决方法。有两类操作:1:单点修改。2:矩形区间询问。首先我们可以用容斥那样将矩形区间询问分成4块,两块+两块-(这原创 2016-04-23 16:26:36 · 806 阅读 · 0 评论 -
acdream1157Segments
链接:http://acdream.info/problem?pid=1157题意:中文题。分析:cdq分治的练习题,分析同BZOJ1176题解,稍微变得点就是比较变为x>=x',y=z',然后记得离散化和处理好题目说的删除操作就好了。O(nlogn^2)。代码:#include#include#include#include#include#include#inclu原创 2016-04-23 23:11:54 · 358 阅读 · 0 评论 -
bzoj3262: 陌上花开
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3262题意:中文题。分析:cdq分治练习题,详细分析戳这里,不过这题没有好的时间戳z,因为这题的三个值都是在1~k范围内的,那就是说有的值不唯一有的不存在,那么我们在分治的时候就要注意边界了,所以我改成了4个参数的分治,详见代码。O(nlogk^2)。代码:#include#i原创 2016-04-24 15:25:04 · 509 阅读 · 0 评论 -
hdu5126stars
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5126题意:给定n个操作,1:(x,y,z)添加一个在三维空间内的在(x,y,z)的点。2:询问,给定(x1,y1,z1)-(x2,y2,z2)求在这个长方体内的点。分析:在普通cdq分治上多了一维,那么套一个cdq分治就行啦。cdq套cdq,过程很简单,但是复杂度高一点而已。O(n(logn)^3原创 2016-05-10 00:44:37 · 1067 阅读 · 0 评论 -
计蒜客 百度地图的实时路况
链接:https://nanti.jisuanke.com/t/11217题意:中文题。分析:首先我们会想到一个最暴力的做法,枚举v然后做Floyd,这样是O(n^4)的,时间不够。那我们仔细观察一下Floyd这个过程,我们会发现k时增量,我们每次用dis[i][k]+dis[k][j]来更新dis[i][j]。这里我们用分治处理这个k,分治处理k的区间[l,r],那么我们就能将复杂度降到原创 2016-07-12 20:37:35 · 560 阅读 · 0 评论 -
hdu5730Shell Necklace
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5730题意:给定a数组,f[i]=sigma(f[i-j]*a[j]),j分析:分治FFT,这题是学snowy_smile的,他分析的很详细,我就不再重复一遍了。代码:#include#include#include#include#include#include#i原创 2016-09-08 14:14:45 · 738 阅读 · 0 评论