多方查找找到了2008年陈丹琪引入CDQ分治的 从《Cash》谈一类分治算法的应用.doc ,CDQ分治的名字由来也是她. 什么叫CDQ分治呢?来看一道二维数点题p1357. 看了一眼题,我会树状数组! 现在拿它来引入CDQ分治.先全部按照x排序,对于区间[l,r]内的贡献都可以分四步
题目链接 思路 四维偏序 \(CDQ\)套\(CDQ\),第一维默认有序。第二维用第一个CDQ变成有序的。并且对每个点标记上第一维属于左边还是右边。第二个\(CDQ\)处理第三维,注意两个\(CDQ\)不能用同一个数组,否则第二维就变成无序的了。最后一维用个树状数组统计答案。 代码 /* * @Author: wxyw
Code: #include <cstdio> #include <algorithm> #include <cstring> #define maxn 500060 #define ll long long #define nex (oo = (oo * A) % mod) #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,cnt,fi