102225: [AtCoder]ABC222 F - Expensive Expense

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $500$ points

Problem Statement

The Kingdom of AtCoder is composed of $N$ towns and $N-1$ roads.
The towns are labeled as Town $1$, Town $2$, $\dots$, Town $N$. Similarly, the roads are labeled as Road $1$, Road $2$, $\dots$, Road $N-1$. Road $i$ connects Towns $A_i$ and $B_i$ bidirectionally, and you have to pay the toll of $C_i$ to go through it. For every pair of different towns $(i, j)$, it is possible to go from Town $A_i$ to Town $B_j$ via the roads.

You are given a sequence $D = (D_1, D_2, \dots, D_N)$, where $D_i$ is the cost to do sightseeing in Town $i$. Let us define the travel cost $E_{i,j}$ from Town $i$ to Town $j$ as the total toll incurred when going from Town $i$ to Town $j$, plus $D_{j}$.

  • More formally, $E_{i,j}$ is defined as $D_j + \displaystyle\sum_{l=0}^{k-1} c_l$, where the shortest path between $i$ and $j$ is $i = p_0, p_1, \dots, p_{k-1}, p_k = j$ and the toll for the road connecting Towns $p_{l}$ and $p_{l+1}$ is $c_l$.

For every $i$, find the maximum possible travel cost when traveling from Town $i$ to another town.

  • More formally, for every $i$, find $ \max_{1 \leq j \leq N, j \neq i} E_{i,j}$.

Constraints

  • $2 \leq N \leq 2 \times 10^5$
  • $1 \leq A_i \leq N$ $(1 \leq i \leq N-1)$
  • $1 \leq B_i \leq N$ $(1 \leq i \leq N-1)$
  • $1 \leq C_i \leq 10^9$ $(1 \leq i \leq N-1)$
  • $1 \leq D_i \leq 10^9$ $(1 \leq i \leq N)$
  • It is possible to travel from Town $i$ to Town $j$ via some number of roads, for a pair of integers $(i,j)$ such that $1 \leq i \lt j \leq N$.
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

$N$
$A_1$ $B_1$ $C_1$
$A_2$ $B_2$ $C_2$
$\vdots$
$A_{N-1}$ $B_{N-1}$ $C_{N-1}$
$D_1$ $D_2$ $\dots$ $D_N$

Output

Print $N$ lines. The $i$-th line should contain $\displaystyle \max_{1 \leq j \leq N, j \neq i} E_{i,j}$.


Sample Input 1

3
1 2 2
2 3 3
1 2 3

Sample Output 1

8
6
6

The value of $E_{i,j}$ for every ordered pair of towns $(i,j)$ is as follows.

  • $E_{1,2} = 2 + 2 = 4$
  • $E_{1,3} = 5 + 3 = 8$
  • $E_{2,1} = 2 + 1 = 3$
  • $E_{2,3} = 3 + 3 = 6$
  • $E_{3,1} = 5 + 1 = 6$
  • $E_{3,2} = 3 + 2 = 5$

Sample Input 2

6
1 2 3
1 3 1
1 4 4
1 5 1
1 6 5
9 2 6 5 3 100

Sample Output 2

105
108
106
109
106
14

Sample Input 3

6
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
1 2 3 4 5 6

Sample Output 3

5000000006
4000000006
3000000006
3000000001
4000000001
5000000001

Input

题意翻译

有一颗 $n$ 个点,$n - 1$ 条边带边权的树,现在定义从点 $i$ 到点 $j$ 的距离是点 $i$ 走到点 $j$ 路上的边权和加上 $d_j$,问每个点到其它点的最长距离

Output

得分:$500$分

问题描述

AtCoder王国由$N$个城镇和$N-1$条道路组成。城镇被标记为城镇$1$,城镇$2$,$\dots$,城镇$N$。同样地,道路被标记为道路$1$,道路$2$,$\dots$,道路$N-1$。道路$i$双向连接城镇$A_i$和$B_i$,通过它需要支付通行费$C_i$。对于每一对不同的城镇$(i, j)$,可以通过道路从城镇$A_i$到城镇$B_j$。

给你一个序列$D = (D_1, D_2, \dots, D_N)$,其中$D_i$是在城镇$i$观光的成本。我们定义从城镇$i$到城镇$j$的旅行成本$E_{i,j}$为从城镇$i$到城镇$j$时需要支付的通行费总和,加上$D_{j}$。

  • 更正式地,$E_{i,j}$被定义为$D_j + \displaystyle\sum_{l=0}^{k-1} c_l$,其中从$i$到$j$的最短路径是$i = p_0, p_1, \dots, p_{k-1}, p_k = j$,连接城镇$p_{l}$和$p_{l+1}$的通行费为$c_l$。

对于每一个$i$,找到从城镇$i$到另一个城镇的最大可能旅行成本。

  • 更正式地,对于每一个$i$,找到$ \max_{1 \leq j \leq N, j \neq i} E_{i,j}$。

约束条件

  • $2 \leq N \leq 2 \times 10^5$
  • $1 \leq A_i \leq N$ $(1 \leq i \leq N-1)$
  • $1 \leq B_i \leq N$ $(1 \leq i \leq N-1)$
  • $1 \leq C_i \leq 10^9$ $(1 \leq i \leq N-1)$
  • $1 \leq D_i \leq 10^9$ $(1 \leq i \leq N)$
  • 对于每一对整数$(i,j)$,其中$1 \leq i \lt j \leq N$,可以从城镇$i$通过一些数量的道路到达城镇$j$。
  • 输入中的所有值都是整数。

输入

从标准输入给出以下格式的输入:

$N$
$A_1$ $B_1$ $C_1$
$A_2$ $B_2$ $C_2$
$\vdots$
$A_{N-1}$ $B_{N-1}$ $C_{N-1}$
        

加入题单

算法标签: