rt,首先观察到LCA具有可合并性,也就是 LCA(w,x,y,z)=LCA(LCA(w,x),LCA(y,z))LCA(w,x,y,z)=LCA(LCA(w,x),LCA(y,z))LCA(w,x,y,z)=LCA(LCA(w,x),LCA(y,z)) 用故用猫树维护LCA,做到 O(1)O(1)O(1) 查询,然后对查询按照 kkk 进行分类,对每一类跑一次回滚莫队,查询就用猫树LCA查询最大值。
时间复杂度个人估算:预处理 O(nlogn)O(n\log n)O(nlogn),回滚莫队+猫树LCA O(kmkmk)=O(mm)O(k\frac{m}{k} \sqrt{\frac{m}{k}})=O(m\sqrt{m})O(kkmkm)=O(mm)。