#P2899. 第3题-城市王国

第3题-城市王国

题目内容

在一个由nn个城市构成的王国中,城市之间由道路相连,且构成一棵树。每个城市都有一个防御 值,用以表示其抵御敌人攻击的能力。

当敌人摧毁其中一个城市后,剩余的城市会被分成若干个连通分量。对于每个连通分量,我们定义其【安全指标】为该分量内所有城市防御值的最大值。王国的【安全分数】定义为所有连通分量安全指标的累加和。

现请你帮助国防军统计:当摧毁城市ii后,剩余王国的安全分数。注意,每次询问都是独立的,即每次询问后,城市不会被摧毁。

【名词解释】

  • 树:树是一个无环连通图。
  • 连通分量:连通分量指在图中任意两个顶点都可以互相到达的最大顶点集合。
  • 删除:删除操作指将指定的城市摧毁,并移除该城市及与其相关的所有道路。
  • 安全分数:安全分数指删除一个城市后,剩余各连通分量中,取各分量内防御值最大值的和。

输入描述

第一行输入一个整数n(2n105)n(2≦n≦10^5),表示城市的数量。

第二行输入nn个整数a1,a2,...,an(0ai109)a_1,a_2,...,a_n(0≦a_i≦10^9),表示每个城市的防御值。

接下来n1n-1行,每行输入两个整数u,v(1u,vn,uv)u,v(1≦u,v ≦n,u≠v),表示城市uu与城市vv之间有一条道路,保证所有城市构成一棵树。

输出描述

输出共一行,包含nn个整数,依次表示当摧毁城市1,2,...,n1,2,...,n后,剩余王国的安全分数,数字间以空格 分隔。

样例1

输入

5
3 2 5 4 1
1 2
1 3
3 4
3 5

输出

7 5 8 5 5

说明

在这组样例中,依次摧毁每个城市后,剩余王国的安全分数分别为:

  • 当摧毁城市11后,剩余的城市构成两个连通分量:{22}和{3,4,53,4,5}。

    • 连通分{22}的安全指标为22;
    • 连通分量{3,4,53,4,5}的安全指标为maxmax{5,4,15,4,1}=5= 5;
    • 整个王国的安全分数为2+5=72+5=7
  • 当摧毁城市22后,剩余城市为{1,3,4,51,3,4,5},整体连通,其安全指标为maxmax{3,5,4,13, 5,4,1}=5=5

  • 当摧毁城市33后,剩余城市被分为三个连通分量:{1,21,2}、{44}与{55}。

    • 连通分量{1,21,2}的安全指标为maxmax{3,23,2}=3=3;
    • 连通分量{44}的安全指标为44
    • 连通分量{5}的安全指标为11;
    • 安全分数为3+4+1=83+4+1=8
  • 当摧毁城市4455后,其余城市均构成一个连通分量,安全分数均为maxmax{3,2,5,13, 2,5,1}=5 = 5

样例2

输入

5
5 1 2 10 3
1 2
2 3
3 4
4 5

输出

10 15 15 8 10