先考虑建立一个静态 Top Tree,具体来说就是一个有 2n-3 个结点的满二叉(非叶子即二度)树,每个叶子对应一条边(作为一个簇),然后非叶子是由两个儿子对应的簇进行题面中的运算得来的,特别的,我们称题面中的点信息为界点,而点集是边信息中作为某条边的端点出现的所有点,那我们要求这里的簇除去界点外不能有向外的连边。
再说回本题,建立出静态 top tree 后我们考虑模仿长剖求 k 级祖先的思想,先随便从一个端点是 u 的叶子跳到尽可能高使得其父亲簇不被当前邻域覆盖了(或者已经到根了),那由这里簇的性质可知邻域剩下的部分只能由两个界点向外的半邻域构成,且因为是极浅的所以两个半邻域半径都不能超过父亲簇大小,而考虑到这是二叉树所以父亲簇大小和与簇大小和同阶,均为 O(n\log n),预处理下就可以 1 次合并回答询问了,因为你可以预处理时先把整个簇信息接某个半邻域上,这样只需要合并两个半邻域。