問題一覧 > 通常問題

No.899 γatheree

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 55
作問者 : niuez / テスター : Lemma299 polylogK
17 ProblemId : 3405 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2019-10-05 00:11:08

問題文

niuez くんの街にある神木には木の妖精がいます.
ある木の頂点に「三つ木もの」(tri-butree)を置くと,近くにいる妖精はその頂点に集合します.
niuez くんはこれで遊んでようと思いました.

0 から N1 までの番号のついた N 頂点,N1 辺からなる無向木があり,i (0i<N1) 番目の辺は頂点 uivi を端点とします.
また,頂点 i (0iN1) には Ai 匹の妖精がいます.
妖精は頂点にしかとどまらず,とどまっている頂点から距離が 2 以下の頂点に「三つ木もの」が置かれると,「三つ木もの」をおいた頂点に移動するという習性を持っています.
移動後, 妖精は移動先の頂点にとどまります
ただし,ある頂点対 a,b の距離とは a,b のパスに含まれる辺の数とします.
以下の Q 個の query を順に処理してください.

  • x
    • 頂点 x に「三つ木もの」を置く.その後,頂点 x にいる妖精の数を求める.

入力

N
u0 v0

uN2 vN2
A0 A1  AN1
Q
x0

xQ1
  • 2N105
  • 0ui,vi<N
    • uivi
    • (ui,vi)=(uj,vj)i=j
  • 0Ai105
  • 1Q105
  • 0xi<N
  • 入力はすべて整数

出力

Q 行出力し,i 行目には i 番目の query の答えを整数で一行に出力してください.

サンプル

サンプル1
入力
10
0 1
0 2
1 3
1 4
2 5
2 6
3 7
3 8
4 9
0 1 2 3 4 5 6 7 8 9
3
1
4
0
出力
34
34
45

頂点1から距離2以下の頂点は, 0, 1, 2, 3, 4, 7, 8, 9です.
なので, 頂点1には, 0+1+2+3+4+7+8+9=34匹の妖精が集まってきます.
また, 最後のクエリの頂点0では, 木上にいるすべての妖精が頂点0に集合します.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。