
cdq
After__rain
这个作者很懒,什么都没留下…
展开
-
cdq套cdq做三维偏序
首先考虑消掉第一维 (直接按第一关键字排序) 然后本来可以套一层cdq然后用BIT来做的,但为了做四维偏序做铺,我又打了cdq套cdq 其实,可以浅显的理解为每一次做外层cdq,都打了一个标记,对于一直处在左边的数点,以及对于一直处在右边的数点,很明显有一个偏序关系,也就是可以累加答案。。。。 然后就可以扩展到n维偏序 #include<bits/stdc++.h> #define MAXN 400005 using namespace std; int n,k,tot,cnt[MAXN],原创 2020-08-27 09:06:32 · 367 阅读 · 0 评论 -
cdq分治
对于能用cdq分治的题目需要满足3个条件 可以离线 修改不会相互影响 询问不会相互影响 归并排序求逆序对以及二维偏序很好的对cdq分治做了一个样例 这里就不在赘述 cdq分治处理单点修改,区间查询,可离线 首先,单点修改,区间查询,可离线,刚好满足cdq分治的使用要求 那么考虑怎么用cdq分治的思想解决这个问题 考虑现在有两段操作 依次按照 操作序号的大小以及先修改再查询有序 对于为什么每次只处理左端的修改,以及右端的询问,可以通过一张图来看 比如说,我现在有个询问,在划圈处 很显然,有两段对他做了操原创 2020-08-26 17:33:47 · 131 阅读 · 0 评论