#P16292. [Ucpc2021初赛]构造 UCPC

[Ucpc2021初赛]构造 UCPC

题目描述

给定一棵有 NN 个顶点的树。顶点编号为 11NN,每个顶点上写有字母 UCP 中的一个。

请计算满足下列条件的数对 (a,b)(a,b) 的数量,其中 1a<bN1\le a<b\le N

  • 收集从顶点 aa 到顶点 bb 的简单路径上所有顶点所写的字母;
  • 将这些字母任意重新排列后,可以得到字符串 (UCPC)k(\texttt{UCPC})^k,其中 k1k\ge 1

换言之,路径上的字母数量必须满足:UP 各有 kk 个,C2k2k 个。

输入格式

第一行包含一个整数 NN(1N200000)(1\le N\le 200000)

第二行包含一个长度为 NN、仅由字符 UCP 组成的字符串 SS。其中 SiS_i 表示顶点 ii 上的字母。

接下来 N1N-1 行,每行包含两个整数 ui,viu_i,v_i,表示树中顶点 uiu_iviv_i 之间有一条边。(1ui,viN, uivi)(1\le u_i,v_i\le N,\ u_i\ne v_i)

输出格式

输出满足条件的数对 (a,b)(a,b) 的数量。

样例

输入样例 1

5
UCCPP
2 3
4 3
3 5
2 1

输出样例 1

2

输入样例 2

13
CUUUCCCCPCCPP
1 2
2 3
4 7
3 10
6 2
7 6
12 13
9 7
7 8
11 12
7 11
5 7

输出样例 2

3

样例说明

图 J.1:样例 1 对应的树。路径 141\to4151\to5 上的字母都可以重排为 UCPC

在样例 2 中,可以构成两个 k=1k=1UCPC,以及一个 k=2k=2UCPCUCPC