筑波大学プログラミングコンテスト2023
コンテスト日時
2023/09/03 (Su) 14:00 - 17:00

K - RGB Triplets 2

Benihuki
3
s
1024
MB
1200

問題文

NN 頂点の木が与えられます。頂点には 11 から NN までの番号が付いており、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいます。また、全ての頂点には色が塗られており、頂点 ii は色 CiC_i (ただし CiC_iRGB のいずれか) で塗られています。
次の 2 つの条件を共に満たす整数の組 (i,j,k)(i, j, k) (1i<j<kN)(1 \leq i < j < k \leq N) の数を求めてください。

  • CiCjC_i ≠ C_j かつ CjCkC_j ≠ C_k かつ CkCiC_k ≠ C_i である
  • 頂点 ii から木上の辺をたどって頂点 jj へ到達するまでに通る辺の本数の最小値を d(i,j)d(i, j) としたとき、d(i,j)=d(j,k)=d(k,i)d(i, j) = d(j, k) = d(k, i)

制約

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 1ui<viN1 \leq u_i < v_i \leq N (1iN1)(1 \leq i \leq N-1)
  • 与えられるグラフは木である
  • C=C1C2CNC = C_1C_2\ldots C_NR, G, B のみからなる長さ NN の文字列である

部分点

この問題には、部分点が設定されている。満点は 12001200 点である。

  • 1N3001 \leq N \leq 300 を満たすデータセットに正解した場合は、150150 点が与えられる
  • 1N30001 \leq N \leq 3000 を満たすデータセットに正解した場合は、上記に加えて 250250 点が与えられる
  • 1N300001 \leq N \leq 30000 を満たすデータセットに正解した場合は、上記の2つに加えて 300300 点が与えられる
  • 追加の制約の無い全てのデータセットに正解した場合は、上記の3つに加えて 500500 点が与えられ、12001200 点(満点)となる

入力

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

NN
CC
u1u_1 v1v_1
u2u_2 v2v_2
.
.
.
uN1u_{N-1} vN1v_{N-1}

出力

答えを出力せよ。

入力例 1
6 RGBRGB 1 2 1 3 1 4 2 5 2 6
出力例 1
2
入力例 2
2 RG 1 2
出力例 2
0

条件を満たす (i,j,k)(i,j,k) の組が1つも存在しないこともあります。

入力例 3
10 GGRRBBBRGB 1 6 1 9 2 10 3 5 3 7 4 8 5 6 8 9 9 10
出力例 3
2