cdq分治
文章平均质量分 83
broxin
这个作者很懒,什么都没留下…
展开
-
bzoj1492 [NOI2007]货币兑换Cash (斜率DP+cdq分治)
题意:到处都找得到。我没看错的话当年考试的时候的题面里头,是提示了买卖一定是全部买入和卖出的。这样一来就好办了。cdq的论文里面那个F并不是她所说的那样,而是就是那个最优值。方程转移的时候实际上是枚举j,将第j天的东西全部卖掉,然后在当前的i这一天全部买入。这个方程关系比较复杂,并且网上很多题解都说得含糊不清,所以我昨晚推了一个小时左右才真正搞懂那个方程式以及斜率。方程很巧,x,y是那一天原创 2016-01-22 15:33:58 · 752 阅读 · 0 评论 -
[bzoj1176]mokia (cdq+树状数组)
题意:二维区间单点修改,查询给定矩形的和。数据范围应该挺大,几十万,离散化之后也没法用二维数据结构做。话说这是大视野上的vip题。吾等屌丝只有拿来水一下自己OJ上的二维树状数组的模板题了。。反而还慢一点。这是我的第二道cdq分治的题,不是很熟练,还是照着别人代码敲的。感觉这题要比cash好做多了。。cash一题中要划分后归并(即快排+归排),因为那道题里面每个节点考虑左儿子对右儿子原创 2016-01-22 20:16:45 · 720 阅读 · 0 评论 -
[ZJOI 2013] bzoj3110 K大数查询 (整体二分)
昨天晚上写了一道最裸的cdq分治的题陌上花开,自己做出来的,感觉又有了一定的领悟。感觉其实cdq分治就相当于主席树的用处,主席树又叫函数式线段树,顾名思义可以拿来当一个函数用,相当于建出来之后就一劳永逸了,来一个询问解决一个。但是有些题目并不要求在线,所以并不需要把一整个主席树都建出来,而是每次都在线地去找它的前缀,然后cdq分治保证了每个点都有不超过logn个前缀,并且在计算i的时候它的前缀已经原创 2016-01-23 12:07:04 · 2797 阅读 · 0 评论 -
[BZOJ3295] [Cqoi2011]动态逆序对 (树套树)or(CDQ分治)
题意:N个数的排列,M次操作,每次求当前的逆序对数量并删掉一个数。先说一下cdq分治做法。(5960kb,1.4s)网上很多题解,我都看不懂(其实很多人的程序几乎是一样的,就改了一下变量名),然后就自己硬着头皮想了这道题,基本是独立做出来的,做出来之后竟然1A,简直愉快。不过我太辣鸡了想了半天才发现这本质上是一个三维偏序,分别是时间,下标,数值,记为(t,x,y)。我们可以把删原创 2016-01-23 22:16:17 · 5113 阅读 · 7 评论 -
数据 (cdq分治)
题意:维护二维平面上的点集,支持插入一个点,查询点集中的点到指定点的最小、最大曼哈顿距离。不强制在线,n,m考试的时候没怎么动脑子,直接上分象限讨论+线段树套平衡树,花了2h写了7k结果常数太大只得了50分。为了降低常数,采用cdq分治。有一个特殊的技巧,就是不需要按象限分类,只讨论x,y都比当前小的情况,其他情况可以将坐标轴对称四次得到。按x坐标排序,然后按时间来划分,用树状数组来维护y原创 2016-03-07 16:55:56 · 581 阅读 · 0 评论 -
BNUOJ51279 组队活动(cdq分治&&NTT)
题意:N个人进行组队,每个队不超过M人,求方案数模998244353。这个递推方程我都没想到。。枚举当前这个人所在队伍剩余人数j,则f[i]=Σf[i-1-j]*C(i-1, j),把组合数展开后发现是个卷积的形式,但是不能直接NTT,因为之前的f值没有求出来。套用cash一题的策略使用cdq分治解决,先递归左边,再用左边的更新右边,再递归右边。注意NTT需要补成2的次幂,常数有点大,但只要保原创 2016-02-27 22:11:05 · 725 阅读 · 0 评论