三维偏序·CDQ分治+树状数组 题目传送门 更好的阅读体验 题目大意 给定个点,求对于每个点,有多少个点满足 题解 由于点能够重复,得先去重,记录一下每个点的个数 先按照排序 然后分治处理 对于一段区间,将它从中点处分开,考虑对于左半区间的点答案都已经维护好,但是右半区间可能会产生跨中点的答案,需要我们在合并的时候加上。 我们可以对两个区间按排序,维护两个指针分别指向两段区间的头 如果 ,那么将 添加到树状数组中,一直做下去直到,然后在树状数组中查询比小的点有多少个加到的答案中去。 值得注意的一点是每算完一个的答案,都要将树状数组恢复原样,我们只需在改动的位置上加上负的改变量即可。 ...