atcoder#APC001F. XOR Tree

XOR Tree

题目描述

N N 頂点の木が与えられます。頂点には 0 0 から N1 N-1 の番号がついています。 辺は 1 1 から N1 N-1 までの番号がついていて、辺 i i は頂点 xi x_i yi y_i をつなぎ、また ai a_i という値を保持しています。 あなたは以下の操作を何回でもすることが出来ます:

  • ある単純pathとある非負整数 x x を選び、そのpathを構成する各辺 e e について、 ae  ae  x a_e\ ←\ a_e\ ⊕\ x (⊕ は xor)と変化させる。

目標はすべての辺 e e について ae = 0 a_e\ =\ 0 とすることです。 目標を達成するために必要な最小の操作回数を求めてください。

输入格式

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

N N x1 x_1 y1 y_1 a1 a_1 x2 x_2 y2 y_2 a2 a_2 : : xN1 x_{N-1} yN1 y_{N-1} aN1 a_{N-1}

输出格式

目標を達成するために必要な操作回数の最小値を出力せよ。

题目大意

题目描述

给一棵有 NN 个节点的树,节点编号从 00N1N-1, 树边编号从 11N1N-1。第 ii 条边连接节点 xix_iyiy_i,其权值为 aia_i

你可以对树执行任意次操作,每次操作选取一条链和一个非负整数 xx,将链上的边的权值与 xx 异或成为该边的新权值。

问最少需要多少次操作,使得所有边的权值都为 00

输入格式

第一行有 11 个整数,代表树的节点数 NN

接下来 N1N-1 行,每行有 33 个整数,第 i+1i+1 行上的整数分别代表第 ii 条边的参数 xi,yi,aix_i,y_i,a_i

输出格式

仅一行 11 个整数,即最小操作数。

数据范围与说明

  • 2N1052\leq N \leq 10^5
  • 0xi,yiN10\leq x_i,y_i \leq N-1
  • 0ai150\leq a_i \leq 15
  • 保证给定的图是一棵树
  • 保证输入数据都是整数
5
0 1 1
0 2 3
0 3 6
3 4 4
3
2
1 0 0
0

提示

制約

  • 2 < = N < = 105 2\ <\ =\ N\ <\ =\ 10^5
  • 0 < = xi,yi < = N1 0\ <\ =\ x_i,y_i\ <\ =\ N-1
  • 0 < = ai < = 15 0\ <\ =\ a_i\ <\ =\ 15
  • 与えられるグラフは木
  • 入力は全て整数

Sample Explanation 1

以下のようにして三回で目標を達成できます。 - まず、頂点 1,2 1,2 を結ぶ path に対して x=1 x=1 で操作する - 次に、頂点 2,3 2,3 を結ぶ path に対して x=2 x=2 で操作する - 最後に、頂点 0,4 0,4 を結ぶ path に対して x=4 x=4 で操作する