atcoder#ARC097D. [ARC097F] Monochrome Cat

[ARC097F] Monochrome Cat

配点 : 800800

問題文

頂点に 11 から NN の番号がついた NN 頂点からなる木があります。 ii 番目の辺は頂点 xix_iyiy_i を結んでいます。 各頂点は、白か黒のいずれかの色で塗られています。 初期状態では、頂点 ii の色は cic_i で表されます。 cic_i == W のとき 頂点が白いことを、cic_i == B のとき 頂点が黒いことを表します。

この木の頂点の上を猫が移動していきます。 具体的には、11 秒間に次の動作のどちらかを行なうことを繰り返します。

  • 現在いる頂点と隣接した頂点をひとつ選びその頂点に移動する。その後、移動先の頂点の色を反転する。
  • 現在いる頂点の色を反転する。

猫の目標はすべての頂点を黒で塗ることです。どの頂点から動作をはじめても、どの頂点で動作を終えてもかまいません。 最短何秒で目標を達成できるでしょうか?

制約

  • 11 \leq NN \leq 10510^5
  • 11 \leq xi,yix_i,y_i \leq NN (11 \leq ii \leq N1N-1)
  • 与えられるグラフは木
  • cic_i == W または cic_i == B

入力

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

NN

x1x_1 y1y_1

x2x_2 y2y_2

::

xN1x_{N-1} yN1y_{N-1}

c1c2..cNc_1c_2..c_N

出力

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

5
1 2
2 3
2 4
4 5
WBBWW
5

例えば、次のように行動すると 55 秒で達成できます。

  • 頂点 11 からはじめる。 頂点 11 の色を黒に変更する。
  • 頂点 22 に移動し、頂点 22 の色を白に変更する。
  • 頂点 22 の色を黒に変更する。
  • 頂点 44 に移動し、頂点 44 の色を黒に変更する。
  • 頂点 55 に移動し、頂点 55 の色を黒に変更する。
6
3 1
4 5
2 6
6 1
3 4
WWBWBB
7
1
B
0
20
2 19
5 13
6 4
15 6
12 19
13 19
3 11
8 3
3 20
16 13
7 14
3 17
7 8
10 20
11 9
8 18
8 2
10 1
6 13
WBWBWBBWWWBBWWBBBBBW
21