RT,从 luogu 日报 中看到的:
如果想要保证查询复杂度为 O(n)O(n)O(n),可以进行二进制分组,具体地,插入时新建一棵只有一个节点的 K-D Tree,并将所有等大的 K-D Tree 合并,可以参考二项堆,可以证明,插入的平摊复杂度为 O(nlog22n)O(nlog_2^2n)O(nlog22n),比之前的做法优秀很多。
但是没看懂这里的「K-D Tree 合并」是怎么做到的,求大佬解释orz