树上莫队共有三种写法: 1.按DFS序列分块,和普通莫队类似.常数大,不会被卡. 2.按块状树的方式分块.常数小,会被菊花图卡到O(n). 3.按[BZOJ1086]王室联邦的方式分块.常数小,不会被卡.唯一的缺点是较抽象,一个块可能是不连通的. 权衡一下当然还是写第三种做法,具体看代码. 然后还有一个问题,手动模拟莫队移动左右端点指针的过程,会发现LCA处较难处理,它常常是跟其它点反着的.于是我们每次移指针的时候都忽略LCA,最后询问的时候加上LCA求解答案再减去LCA.再模拟会发现,所有方案…