#P15680. [Bulgarian2023训练营]tree

[Bulgarian2023训练营]tree

题目描述

给定一棵有 NN 个顶点的树。每个顶点 uu 有权值 wuw_u,每条边 (ai,bi)(a_i,b_i) 有长度 lil_i

我们知道,树的重心会最小化到所有顶点距离之和;但那样就太简单了。

请找到一个顶点 xx,使下面的和最小:

u=1Nwud(x,u)32\sum_{u=1}^{N} w_u\cdot d(x,u)^{\frac{3}{2}}

其中 d(u,v)d(u,v) 表示顶点 uu 与顶点 vv 之间的距离,即路径上边长之和。

若有多个顶点都能使上述和最小,输出编号最小的顶点。

输入格式

输入格式如下:

N
w_1 w_2 ... w_N
a_1 b_1 l_1
...
a_{N-1} b_{N-1} l_{N-1}

输出格式

输出一个整数,表示使上述和最小的顶点 xx

数据范围

  • 1N2×1051\le N\le 2\times 10^5
  • 1li10001\le l_i\le 1000
  • 0wu1080\le w_u\le 10^8

子任务

子任务 分值 附加限制
1 10 N100N\le 100
2 20 N2000N\le 2000
3 14 N50000N\le 50000,且每个顶点最多有 1010 个相邻点
4 N50000N\le 50000
5 42 无附加限制

样例

输入

3
1 5 1
1 3 42
1 2 42

输出

2

样例解释

x=2x=2 时,上述和最小,约为 1042.063821042.06382