
CDQ分治
文章平均质量分 78
大蒟蒻syk
这个作者很懒,什么都没留下…
展开
-
[BZOJ3262]陌上花开 && CDQ+树状数组
三维的有序 第一维排序 第二维CDQ 第三维树状数组 注意要把完全相同的两个点合在一起 他们都互相比对方美丽#include#include#include#include#include#define SF scanf#define PF printf#define lowbit(x) ((x) & (-(x)))using namespace std;typedef原创 2015-04-10 21:22:44 · 1015 阅读 · 0 评论 -
[BZOJ3295] [Cqoi2011]动态逆序对 && CDQ分治
CDQ跑的比分治快得多首先 我们可以把每一个点看成一个三元组(x, y, z) x 表示它当前的值 y 表示的在序列中的编号 z 表示它的时间 即第z次操作后的这个点所以 如果某个点P在平面上的左上方有点(值小于P并且位置在P之后) 后者右下方(恰好相反)的地方有点 就会形成一个逆序对在一开始我们很容易求出每一个点形成的逆序对总数 每次删除的时候从ans中减去然而 在CDQ分治的过原创 2015-04-10 20:19:21 · 775 阅读 · 0 评论 -
[BZOJ1492][NOI2007]货币兑换Cash && CDQ分治+斜率优化
这种分治思想我也是醉了Orz首先对于这道题 我们可以发现 如果某一天你要买进或卖出 那一定是尽可能的买或卖那么我们就可以用一个状态f[i]表示某一天的最大收益那么就有 f[i] = (rate[j] * f[j] * a[i] + f[j] * b[i]) / (rate[i] * a[i] + b[i]那么朴素转移就很容易了 怎样优化呢令 y[j] = f[j] / (r原创 2015-04-09 20:16:48 · 469 阅读 · 0 评论 -
[BZOJ1176][Balkan2007]Mokia && CDQ分治+树状数组
这样的二维矩形和本身可以用树状数组在给定时间内完成 然而这时空间显然开不下了 那么我们可以用CDQ分治将操作离散化 再将所有操作按坐标排序 这样保证了在解决较大矩阵问题的时候较小矩阵内的操作已经进行了然后 就没有人然后了 总的来说CDQ分治是对多数次操作离线后再二分处理的一种方法? 然而我还是并不怎么会QAQ#include#include#include#include#in原创 2015-04-09 23:49:53 · 476 阅读 · 0 评论