题解 \(by\;zj\varphi\) 首先考虑,如果将一个点修改成了黑点,那么它能够造成多少贡献. 它先会对自己的子树中的答案造成 \(w_x\) 的贡献. 考虑祖先时,它会对不包括自己的子树造成 \(w_fa\) 的贡献. 那么思路很显然,直接暴力向上更新,若更新到一个祖先,它已经被更新过了,那么更新完它之后直接退出就行,因为再向上,一定已经被更新过了. 实现的过程用在 \(\rm dfs\) 序上建线段树即可. 这样,每个点最多被更新一次,在询问时,最多重复更新一个点,所以总复杂度为 \…