简单的引入:在很多有修改操作的题目中,无非就是引入了一个时间轴的概念。每进行一次修改,就代表着时间轴的向后推进。有些时候,我们的修改操作是放一个物品,然后这个物品会对查询产生一定的贡献与影响。那么从这个物品出现的时间点 x 开始,其会影响到其消失时的时间点 y 之间所有时间都会产生影响。换言之,我需要将这个物品的影响,对于区间 [x,y] 所有询问进行覆盖。我们没有办法一个一个去覆盖,所以我们使用线段树的懒标记来完成这个覆盖操作,这就是线段树分治。
简单的引入:回想逆序对的归并排序求法,我们每次将当前均分,先将左右区间分别排好序,然后对于每一个处在右区间的数 x ,一边归并排序,一边计算左区间中有多少个大于 x 的数。之所以可以这样做,是因为左区间的下标一定是满足小于右区间的下标的,这样我们就先满足了一维限制。然后就可以把问题转换成只有一维的限制,从而简化问题,由于每一个左右都会被考虑到,所以我们得到了正确的答案。其实这里的归并排序已经有了 CDQ 分治的雏形,他就是简化限制条件的一个高效算法。