atcoder#AGC052B. [AGC052B] Tree Edges XOR

[AGC052B] Tree Edges XOR

题目描述

N N 頂点の木が与えられます。ここで、N N 奇数 です。 木の頂点には 1 1 から N N までの、辺には 1 1 から N1 N-1 までの番号が付けられています。 辺 i i は頂点 ui, vi u_i,\ v_i を結び、初期状態での重みは wi1 w^1_i です。

あなたは、次の操作を何度でも行えます。

  • 木から辺 (u, v) (u,\ v) を選ぶ。この辺の現在の重みが w w であるとする。u, v u,\ v のいずれかちょうど一方に接続する各辺について、その重みを w w との XOR に置き換える(操作前の辺の重みが w1 w_1 であるとすると、操作後の重みは w1  w w_1\ \oplus\ w となる)。

あなたの目標は、各辺 i i の重みを wi2 w^2_i とすることです。 上記の操作を何度でも行えるとして、目標の達成が可能か判定してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N u1 u_1 v1 v_1 w11 w^1_1 w12 w^2_1 u2 u_2 v2 v_2 w21 w^1_2 w22 w^2_2 \vdots uN1 u_{N-1} vN1 v_{N-1} wN11 w^1_{N-1} wN12 w^2_{N-1}

输出格式

目標とする重みの割り当てに初期状態から至ることが可能であれば YES、そうでなければ NO と出力せよ。 なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。

题目大意

给定Tree(n)Tree(n),保证nn是奇数,边有边权wi,1w_{i,1},现在你可以任意次把与一个边相连的其他边的权值异或上这条边的权值,求是否可以让每条边的边权变为wi,2w_{i,2}.

n105,w230n\le 10^5,w\le 2^30

3
1 2 1 1
2 3 8 9
YES
5
1 2 0 3
1 3 1 0
1 4 2 1
1 5 0 0
NO

提示

制約

  • 1  N  105 1\ \le\ N\ \le\ 10^5
  • N N は奇数である。
  • 1 ui, vi  N 1\le\ u_i,\ v_i\ \le\ N
  • ui  vi u_i\ \neq\ v_i
  • 0 wi1, wi2 < 230 0\le\ w^1_i,\ w^2_i\ <\ 2^{30}
  • 入力中の値は全て整数である。
  • 入力が表すグラフは木である。

Sample Explanation 1

1 1 に対して操作を行うと、辺 2 2 の重みが 8  1=9 8\ \oplus\ 1=9 となります。