P3810 【模板】三维偏序(陌上花开)
考虑二维偏序。
我们将所有点按某一维排序,然后按照这一位扫描线。这样操作的目的是把这一维变成时间维。
然后维护一个树状数组,在扫描的过程中做在线的一维偏序。这是简单的。
这给了我们一个启示:离线的
同理对于三维偏序我们要做在线的二维偏序。考虑 cdq 分治。
首先按
定义函数
-
-
- 计算有多少
(i, j) 满足l \le i \le mid 且mid < j \le r 。
对于第三个,显然左边的
我们再将左右两边分别按
再套一个树状数组就能满足