老C的任务
P3755 [CQOI2017] 老C的任务
考虑 CDQ
分治。
考虑到查询子区间,可以采用类似于二位前缀和的方式,然后答案就转换成对于每个子矩形上的点,查询原有的点满足二维偏序的方式。我们可以将原有的点标记为 \(0\),新点标记为 \(1\),这样又转换成一个三维偏序问题。但是这时我们无需使用数据结构维护,可以直接用一个变量记录标号为 \(0\) 的点功率和即可。
时间复杂度 \(O(n\log n)\)。
代码中将多个变量压缩成了一个。
code
双倍经验:园丁的烦恼