正义打败邪恶!CDQ 分治与整体二分碾压树套树与分块。
本题有一个非常好的性质:没强制在线。所以我们可以离线下来搞。
具体怎么做呢?本题的核心就是点修、区间第
还剩下前驱和后继,怎么处理?某个数的前驱,可以先算出严格小于这个数的数量
这时我们发现,我们需要将这两个操作组合起来。我们可以把询问拆开,先跑 CDQ 分治,得到
实现起来细节不特别多,主要是主函数中拼接操作的部分不怎么好写。
但是跑起来飞快,没怎么卡常就跑到最优解第二页。
代码
本题有一个非常好的性质:没强制在线。所以我们可以离线下来搞。
具体怎么做呢?本题的核心就是点修、区间第
还剩下前驱和后继,怎么处理?某个数的前驱,可以先算出严格小于这个数的数量
这时我们发现,我们需要将这两个操作组合起来。我们可以把询问拆开,先跑 CDQ 分治,得到
实现起来细节不特别多,主要是主函数中拼接操作的部分不怎么好写。
但是跑起来飞快,没怎么卡常就跑到最优解第二页。
代码