[做题记录-数据结构] Luogu5210 [ZJOI2017]线段树

很久没有过的对着题解抄的题了。(
手玩一下之后会发现我们的区间会在第一次向两边递归的时候分开, 然后剩下的就是对是右儿子的左链求和以及对左儿子的右链求和。那么应该可以用倍增之类的东西直接硬维护。
然后点开题解发现这玩意可以直接使用差分维护。具体来说就是把\(u\)点和\(l - 1\)以及\(r +1\)求\(lca\)讨论\(x = lca\)的位置,那么分成\(x\)下面的点, 上面的点, 并且特判\(u\)在\(x\)点右子树的情况, 这个地方比普通的情况要少个\(1\)的深度。
然后就大概这么搞, 细节也不是很多, 但是非常难受。

上一篇:洛谷 P2633 Count on a tree 主席树


下一篇:Count on a tree II (树上莫队)