U229291 树上求和

题目描述

给一棵 $n$ 个节点的树,第 $i$ 个节点有一个颜色 $c_i$ 。 请问对于树上所有点对 $(u,v)(1\leq u< v\leq n)$ ,它们路径上的点有多少种不同的颜色。输出所有点对的答案的和。

输入格式

第一行,一个整数 $n$ ,表示节点个数。 接下来一行,一共 $n$ 个整数 $c_1 , c_2, ...\,, c_n$ ,表示每个点的颜色。 接下来 $n − 1$ 行,每行两个数 $u, v$ ,表示树上的一条边。

输出格式

一行,一个整数,表示答案。

说明/提示

共 $10$ 组数据。 测试点 $1$ 满足 $n ≤ 100$ 。 测试点 $2,3$ 满足 $n ≤ 10^3$ 。 测试点 $4,5$ 满足 $n ≤ 2 × 10^5, 1 ≤ c_i ≤ 20$ 。 测试点 $6,7$ 满足 $n ≤ 2 × 10^5$ ,每种颜色节点数不超过 $20$ 个。 对于 $100\%$ 数据,满足 $1 ≤ n ≤ 2 × 10^5, 1 ≤ c_i\leq n$