点 u 的权值 wu 只依赖 au 以及 u 的直接子节点的取值集合 av∣v∈child(u)。 因而一次把 ax 改成 y 的修改,至多影响 两个点:x 自身(若 x 有子)与其父亲 p=fa(x)(因为 wp 里包含ap⊕ax 这一候选)。这不会继续向更高祖先传递(wfa(mathrmfa(x)) 不依赖 wp)。
区间查询(类型 2)是“按编号”的最大值;子树查询(类型 3)可以用欧拉序把子树压成一段区间。因此维护两棵最大值线段树即可:
小美有一棵 n 个节点(编号为 1 ~ n)、由 n−1 条边构成的无向树,根节点为 1 。每个节点 i 有一个值 ai 。对于任意节点 u ,其权值定义如下:
