T576520 X
题目描述
你有一棵拥有 $n(n \geq 3)$ 个节点,且每个节点都有权值的树。如果树上存在两条路径 $x,y$,**路径上点的个数皆大于 $1$** ,且它们**有且仅有**一个公共节点,则称其为一个 $X$。
设两条路径交点的权值,两条路径的权值和分别为 $t,a,b$,定义 $X$ 的 **值**,为:
$$
f(X) = t^2 + (a+b)\times t + ab
$$
你的同桌想知道树上最大的 $f(X)$ 应该是多少,请帮帮她。
输入格式
第一行包含两个整数 $n(n \leq 2\times 10^5)$ 表示树上节点的个数。
接下来 $n - 1$ 行,每行两个整数 $x,y$ 表示节点 $x ,y$ 之间存在边连接。
接下来一行 $n$ 个整数(**注意有负数**),表示 $n$ 个节点的权值(权值值域为 $[-1000,1000]$)。
输出格式
输出一个整数,表示树上最大的 $X$ 的值。
说明/提示
**样例1**,只有路径 (1$\sim$2) 以及路径 (1$\sim$3) 满足路径长度大于1且只有一个公共交点的条件,因此答案为 $10^2 +(0+30)\times 10 + 0\times 30 =400 $
**样例2**,路径 (1$\sim$4) 以及路径 (1$\sim$3) 的 $f(X)$ 是最大的,答案为 $10^2 + (10 + 0) \times 10 + 10 \times 0 =200$
共 16 个测试点,其中:
* 2 个测试点满足 $n \leq 35$
* 另有 2 个测试点满足为一条链
* 另有 2 个测试点满足点权都相等