#P1058. 赛道长度

赛道长度

题目描述

Bob 是一名探险协会的主席,最近他想为即将举行的探险挑战赛规划路线。比赛场地位于一座森林公园中,公园里共有 nn 个景点,并且有 n1n-1 条道路将这些景点连成一棵树的结构。

比赛需要设定一个起点和一个终点,路线长度为起点到终点之间经过的道路数目。特殊的是,终点只能在部分指定的景点中选择,而起点则可以是任意景点(包括终点本身,即路线长度允许为 00)。

现在 Bob 希望知道,对于森林公园中的每个景点,如果选它作为起点,比赛路线的长度有多少种不同的可能?

输入格式

第一行一个整数 nn

第二行 nn 个整数,第 ii 个整数 aia_i 如果为 00,表示景点 ii 不能作为赛道终点;如果为 11 表示可以。

接下来 n1n-1 行,每行两个整数 u,vu,v 表示一条连接景点 u,vu,v 的道路。

输出格式

nn 行,第 ii 行一个整数表示以景点 ii 作为起点得到的长度种类数。

6
1 0 1 0 1 0
1 2
2 3
3 4
3 5
2 6
3
2
3
3
3
2

数据范围

对于 30%30\% 的数据,1n20001\leq n\leq 2000

对于 60%60\% 的数据,1n100001\leq n\leq 10000

对于 100%100\% 的数据,1n500001\leq n\leq 50000ai{0,1}a_i\in\{0,1\}1u,vn1\leq u,v\leq nuvu\neq v