#ATagc034e. [AGC034E] Complete Compress

[AGC034E] Complete Compress

题目描述

给定一棵有 NN 个顶点的树,顶点编号为 1,2,,N1, 2, \ldots, N。第 ii 条边连接顶点 aia_i 和顶点 bib_i。另外,给定一个长度为 NN 只包含 01 的字符串 SSSS 的第 ii 个字符表示在顶点 ii 上放置的棋子数量。

すぬけ君可以进行如下操作任意次:

  • 选择距离至少为 22 的两个棋子,将它们各自向对方靠近一步。具体来说,选择放有棋子的顶点 uuvv,考虑 uuvv 的最短路径,要求该路径的边数至少为 22。然后,将 uu 上的一个棋子移动到与 uu 相邻的顶点,将 vv 上的一个棋子移动到与 vv 相邻的顶点。

すぬけ君希望通过若干次操作,将所有棋子集中到同一个顶点。请判断是否可能做到。如果可能,请输出所需的最小操作次数。

输入格式

输入通过标准输入给出,格式如下:

NN

SS

a1a_1 b1b_1

a2a_2 b2b_2

\ldots

aN1a_{N-1} bN1b_{N-1}

输出格式

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

样例 1

输入

7
0010101
1 2
2 3
1 4
4 5
1 6
6 7

输出

3

样例 2

输入

7
0010110
1 2
2 3
1 4
4 5
1 6
6 7

输出

-1

样例 3

输入

2
01
1 2

输出

0

说明/提示

限制条件

  • 2N20002 \leq N \leq 2000
  • S=N|S| = N
  • SS 只包含 01,且至少有一个字符为 1
  • 1ai,biN1 \leq a_i, b_i \leq N,且 aibia_i \neq b_i
  • (a1,b1),(a2,b2),,(aN1,bN1)(a_1, b_1), (a_2, b_2), \ldots, (a_{N-1}, b_{N-1}) 构成一棵树。

样例说明 1

  • 选择顶点 3,53, 5 上的棋子。
  • 选择顶点 2,72, 7 上的棋子。
  • 选择顶点 4,64, 6 上的棋子。

通过 33 次操作,可以将所有棋子集中到顶点 11

由 ChatGPT 4.1 翻译