#aBC369G. [ABC369G] As far as possible

[ABC369G] As far as possible

AT_abc369_g [ABC369G] As far as possible

题目描述

给定一棵包含 NN 个顶点的树。顶点编号为 1,2,,N1, 2, \ldots, N
ii 条边(1iN11\leq i\leq N-1)连接顶点 UiU_i 和顶点 ViV_i,长度为 LiL_i

对于 K=1,2,,NK=1,2,\ldots,N,请解决以下问题。

高桥君和青木君进行一个游戏。游戏规则如下:

  • 首先,青木君在树上指定 KK 个互不相同的顶点。
  • 然后,高桥君需要构造一条起点和终点均为顶点 11 的“步道”,并且该步道必须经过青木君指定的所有顶点。

高桥君构造的步道的长度定义为分数。高桥君希望分数尽可能小,青木君希望分数尽可能大。请你求出当两人都采取最优策略时的分数。

步道的定义:在无向图(包括树)上,步道是指由 kk 个顶点(kk 为正整数)和 k1k-1 条边交替组成的序列 v1,e1,v2,,vk1,ek1,vkv_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k,其中每条边 eie_i 连接顶点 viv_ivi+1v_{i+1}。序列中同一个顶点或同一条边可以出现多次。步道经过顶点 xx,是指存在 1ik1\leq i\leq k 使得 vi=xv_i=x(可以有多个这样的 ii)。步道的起点和终点分别为 v1v_1vkv_k,步道的长度为 e1,e2,,ek1e_1,e_2,\ldots,e_{k-1} 的长度之和。

输入格式

输入以以下格式从标准输入读入。

NN
U1U_1 V1V_1 L1L_1
U2U_2 V2V_2 L2L_2
\vdots
UN1U_{N-1} VN1V_{N-1} LN1L_{N-1}

输出格式

输出 NN 行。第 ii 行(1iN1\leq i\leq N)输出 K=iK=i 时问题的答案。

输入输出样例 #1

输入 #1

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

输出 #1

16
22
26
26
26

输入输出样例 #2

输入 #2

3
1 2 1000000000
2 3 1000000000

输出 #2

4000000000
4000000000
4000000000

说明/提示

数据范围

  • 2N2×1052\leq N\leq 2\times 10^5
  • 1Ui<ViN1\leq U_i < V_i\leq N
  • 1Li1091\leq L_i\leq 10^9
  • 输入均为整数
  • 给定的图为一棵树。

样例解释 1

K=1K=1 时,青木君最优地指定顶点 33,此时高桥君可以构造步道 123211\to 2\to 3\to 2\to 1,最优分数为 1616。当 K=2K=2 时,青木君最优地指定顶点 3,53,5,此时高桥君可以构造步道 15123211\to 5\to 1\to 2\to 3\to 2\to 1 等,最优分数为 2222。当 K3K\geq 3 时,双方最优时分数为 2626

样例解释 2

注意答案可能超出 3232 位整数范围。

由 ChatGPT 4.1 翻译