310378: CF1824C. LuoTianyi and XOR-Tree

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

C. LuoTianyi and XOR-Treetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

LuoTianyi gives you a tree with values in its vertices, and the root of the tree is vertex $1$.

In one operation, you can change the value in one vertex to any non-negative integer.

Now you need to find the minimum number of operations you need to perform to make each path from the root to leaf$^{\dagger}$ has a bitwise XOR value of zero.

$^{\dagger}$A leaf in a rooted tree is a vertex that has exactly one neighbor and is not a root.

Input

The first line contains a single integer $n$ ($2 \le n \le 10^5$) — the number of vertices in the tree.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 10^9$), the $i$-th number represents the value in the $i$-th vertex.

Next $n−1$ lines describe the edges of the tree. The $i$-th line contains two integers $u_i$ and $v_i$ ($1 \le u_i,v_i \le n, u_i \neq v_i$) — the vertices connected by an edge of the tree. It's guaranteed that the given edges form a tree.

Output

Print a single integer — the minimum number of operations.

ExamplesInput
6
3 5 7 5 8 4
1 2
1 3
1 4
3 5
4 6
Output
3
Input
8
7 10 7 16 19 9 16 11
1 5
4 2
6 5
5 2
7 2
2 3
3 8
Output
3
Input
4
1 2 1 2
1 2
2 3
4 3
Output
0
Input
9
4 3 6 1 5 5 5 2 7
1 2
2 3
4 1
4 5
4 6
4 7
8 1
8 9
Output
2
Note

The tree in the first example:

If we change the value in the vertex $2$ to $3$, the value in the vertex $5$ to $4$, and the value in the vertex $6$ to $6$, then the tree will be ok.

The bitwise XOR from the root to the leaf $2$ will be $3 \oplus 3=0$.

The bitwise XOR from the root to the leaf $5$ will be $4 \oplus 7 \oplus 3=0$.

The bitwise XOR from the root to the leaf $6$ will be $6 \oplus 5 \oplus 3=0$.

The tree in the second example:

If we change the value in the vertex $2$ to $4$, the value in the vertex $3$ to $27$, and the value in the vertex $6$ to $20$, then the tree will be ok.

The bitwise XOR from the root to the leaf $6$ will be $20 \oplus 19 \oplus 7=0$.

The bitwise XOR from the root to the leaf $8$ will be $11 \oplus 27 \oplus 4 \oplus 19 \oplus 7=0$.

The bitwise XOR from the root to the leaf $4$ will be $16 \oplus 4 \oplus 19 \oplus 7=0$.

The bitwise XOR from the root to the leaf $7$ will be $16 \oplus 4 \oplus 19 \oplus 7=0$.

In the third example, the only leaf is the vertex $4$ and the bitwise XOR on the path to it is $1 \oplus 2 \oplus 1 \oplus 2 = 0$, so we don't need to change values.

In the fourth example, we can change the value in the vertex $1$ to $5$, and the value in the vertex $4$ to $0$.

Here $\oplus$ denotes the bitwise XOR operation.

Input

题意翻译

给定一棵 $n$ 个节点的树,根节点为 $1$ ,每个点有一个点权 $a_i$ ,每次操作可以选择一个点任意修改点权,求最少的操作次数,使得每一条根结点到叶子结点的路径上的异或和都为 $0$ 。

Output

洛天依给你一个在顶点上带有值的树,树的根是顶点1。

在一次操作中,你可以将一个顶点的值更改为任何非负整数。

现在你需要找到需要进行的最小操作次数,使得从根到叶子的每条路径都具有位异或值为零。

输入数据格式:
- 第一行包含一个整数n(2≤n≤10^5)——树中顶点的数量。
- 第二行包含n个整数a_1, a_2, …, a_n(1≤a_i≤10^9),第i个数表示第i个顶点的值。
- 接下来的n-1行描述树的边。第i行包含两个整数u_i和v_i(1≤u_i,v_i≤n, u_i≠v_i)——通过树的一条边连接的顶点。保证给定的边构成一棵树。

输出数据格式:
- 打印一个整数——需要执行的最小操作数。

示例:
输入:
```
6
3 5 7 5 8 4
1 2
1 3
1 4
3 5
4 6
```
输出:
```
3
```

注意:
- 在第一个示例中,如果我们把顶点2的值改为3,顶点5的值改为4,顶点6的值改为6,那么树就是好的。
- 在第二个示例中,如果我们把顶点2的值改为4,顶点3的值改为27,顶点6的值改为20,那么树就是好的。
- 在第三个示例中,唯一的叶子是顶点4,并且到它的路径上的位异或为0,所以我们不需要改变值。
- 在第四个示例中,我们可以把顶点1的值改为5,顶点4的值改为0。洛天依给你一个在顶点上带有值的树,树的根是顶点1。 在一次操作中,你可以将一个顶点的值更改为任何非负整数。 现在你需要找到需要进行的最小操作次数,使得从根到叶子的每条路径都具有位异或值为零。 输入数据格式: - 第一行包含一个整数n(2≤n≤10^5)——树中顶点的数量。 - 第二行包含n个整数a_1, a_2, …, a_n(1≤a_i≤10^9),第i个数表示第i个顶点的值。 - 接下来的n-1行描述树的边。第i行包含两个整数u_i和v_i(1≤u_i,v_i≤n, u_i≠v_i)——通过树的一条边连接的顶点。保证给定的边构成一棵树。 输出数据格式: - 打印一个整数——需要执行的最小操作数。 示例: 输入: ``` 6 3 5 7 5 8 4 1 2 1 3 1 4 3 5 4 6 ``` 输出: ``` 3 ``` 注意: - 在第一个示例中,如果我们把顶点2的值改为3,顶点5的值改为4,顶点6的值改为6,那么树就是好的。 - 在第二个示例中,如果我们把顶点2的值改为4,顶点3的值改为27,顶点6的值改为20,那么树就是好的。 - 在第三个示例中,唯一的叶子是顶点4,并且到它的路径上的位异或为0,所以我们不需要改变值。 - 在第四个示例中,我们可以把顶点1的值改为5,顶点4的值改为0。

加入题单

上一题 下一题 算法标签: