AT_agc034_e [AGC034E] Complete Compress

题目描述

给定一棵有 $N$ 个顶点的树,顶点编号为 $1, 2, \ldots, N$。第 $i$ 条边连接顶点 $a_i$ 和顶点 $b_i$。另外,给定一个长度为 $N$ 只包含 `0` 和 `1` 的字符串 $S$,$S$ 的第 $i$ 个字符表示在顶点 $i$ 上放置的棋子数量。 すぬけ君可以进行如下操作任意次: - 选择距离至少为 $2$ 的两个棋子,将它们各自向对方靠近一步。具体来说,选择放有棋子的顶点 $u$ 和 $v$,考虑 $u$ 到 $v$ 的最短路径,要求该路径的边数至少为 $2$。然后,将 $u$ 上的一个棋子移动到与 $u$ 相邻的顶点,将 $v$ 上的一个棋子移动到与 $v$ 相邻的顶点。 すぬけ君希望通过若干次操作,将所有棋子集中到同一个顶点。请判断是否可能做到。如果可能,请输出所需的最小操作次数。

输入格式

输入通过标准输入给出,格式如下: > $N$ $S$ $a_1$ $b_1$ $a_2$ $b_2$ $\ldots$ $a_{N-1}$ $b_{N-1}$

输出格式

如果无法将所有棋子集中到同一个顶点,输出 `-1`;如果可以,输出所需的最小操作次数。

说明/提示

## 限制条件 - $2 \leq N \leq 2000$ - $|S| = N$ - $S$ 只包含 `0` 和 `1`,且至少有一个字符为 `1` - $1 \leq a_i, b_i \leq N$,且 $a_i \neq b_i$ - 边 $(a_1, b_1), (a_2, b_2), \ldots, (a_{N-1}, b_{N-1})$ 构成一棵树 ## 样例说明 1 - 选择顶点 $3, 5$ 上的棋子 - 选择顶点 $2, 7$ 上的棋子 - 选择顶点 $4, 6$ 上的棋子 通过 $3$ 次操作,可以将所有棋子集中到顶点 $1$。 由 ChatGPT 4.1 翻译