オイラーツアーを使う.

木のオイラーツアーを作成し, 頂点 \(i\) が初めて訪れたタイミング \(s_i\) と最後に訪れたタイミング \(t_i\) を取得しておく.

そして頂点のコストはセグメント木で管理する. 頂点 \(i\) のコストは \(s_i\) の位置に格納しておき, \(i\) を根とする部分木に含まれる頂点のコストの XOR は区間 \([s_i, t_i]\) の合成値を取得する.