Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
1 から N までの番号がつけられた N 個の頂点を持つ木があります。この木の i 番目の辺は頂点 a_i と b_i を結んでいます。 また、各頂点には色が塗られており、 頂点 i に塗られている色は c_i です。ここで、各頂点に塗られている色は 1 以上 N 以下の整数で表されており、同じ整数は同じ色に、異なる整数は異なる色に対応します。
k=1,2,...,N に対して、以下の問題を解いてください。
- 色 k が塗られている頂点を一度以上通るような単純パスの数を求めよ
補足: 頂点 u から頂点 v へ向かう単純パスと、頂点 v から頂点 u へ向かう単純パスは区別しません。
制約
- 1 \leq N \leq 2 \times 10^5
- 1 \leq c_i \leq N
- 1 \leq a_i,b_i \leq N
- 与えられるグラフは木である。
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N c_1 c_2 ... c_N a_1 b_1 : a_{N-1} b_{N-1}
出力
k=1,2,...,N に対する問題の答えを、順番に改行区切りで出力せよ。
入力例 1
3 1 2 1 1 2 2 3
出力例 1
5 4 0
頂点 i と頂点 j を結ぶ単純パスを、P_{i,j} と表します。
色 1 が塗られている頂点を一度以上通る単純パスは、
P_{1,1}\,,\,
P_{1,2}\,,\,
P_{1,3}\,,\,
P_{2,3}\,,\,
P_{3,3}
の 5 つあります。
色 2 が塗られている頂点を一度以上通る単純パスは、
P_{1,2}\,,\,
P_{1,3}\,,\,
P_{2,2}\,,\,
P_{2,3}
の 4 つあります。
色 3 が塗られている頂点を一度以上通る単純パスはありません。
入力例 2
1 1
出力例 2
1
入力例 3
2 1 2 1 2
出力例 3
2 2
入力例 4
5 1 2 3 4 5 1 2 2 3 3 4 3 5
出力例 4
5 8 10 5 5
入力例 5
8 2 7 2 5 4 1 7 5 3 1 1 2 2 7 4 5 5 6 6 8 7 8
出力例 5
18 15 0 14 23 0 23 0
Score : 600 points
Problem Statement
We have a tree with N vertices numbered 1 to N. The i-th edge in this tree connects Vertex a_i and b_i. Additionally, each vertex is painted in a color, and the color of Vertex i is c_i. Here, the color of each vertex is represented by an integer between 1 and N (inclusive). The same integer corresponds to the same color; different integers correspond to different colors.
For each k=1, 2, ..., N, solve the following problem:
- Find the number of simple paths that visit a vertex painted in the color k one or more times.
Note: The simple paths from Vertex u to v and from v to u are not distinguished.
Constraints
- 1 \leq N \leq 2 \times 10^5
- 1 \leq c_i \leq N
- 1 \leq a_i,b_i \leq N
- The given graph is a tree.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N c_1 c_2 ... c_N a_1 b_1 : a_{N-1} b_{N-1}
Output
Print the answers for k = 1, 2, ..., N in order, each in its own line.
Sample Input 1
3 1 2 1 1 2 2 3
Sample Output 1
5 4 0
Let P_{i,j} denote the simple path connecting Vertex i and j.
There are 5 simple paths that visit a vertex painted in the color 1 one or more times:
P_{1,1}\,,\,
P_{1,2}\,,\,
P_{1,3}\,,\,
P_{2,3}\,,\,
P_{3,3}
There are 4 simple paths that visit a vertex painted in the color 2 one or more times:
P_{1,2}\,,\,
P_{1,3}\,,\,
P_{2,2}\,,\,
P_{2,3}
There are no simple paths that visit a vertex painted in the color 3 one or more times.
Sample Input 2
1 1
Sample Output 2
1
Sample Input 3
2 1 2 1 2
Sample Output 3
2 2
Sample Input 4
5 1 2 3 4 5 1 2 2 3 3 4 3 5
Sample Output 4
5 8 10 5 5
Sample Input 5
8 2 7 2 5 4 1 7 5 3 1 1 2 2 7 4 5 5 6 6 8 7 8
Sample Output 5
18 15 0 14 23 0 23 0