luogu#P9704. 「TFOI R1」Tree Home

「TFOI R1」Tree Home

题目背景

阳光开朗大男孩天才 Z 今天要向蕉太狼表白力!

众所周知,蕉太狼是一个很可爱的女孩纸。 从前的天才 Z 总是担心因为自己表白失败而受到别人的嘲笑。但是今天,天才 Z 就要做出自己一生中最重要的一件事,那就是真诚地表白,无论后果如何。

出乎意料,蕉太狼其实也喜欢着天才 Z!

天才 Z 开心得像个 0#。

但是没过多久,天才 Z 就被甩力,原因蕉太狼发现天才 Z 对自己的闺蜜有非分之想。

天才 Z 拿出了自己的树状家谱,问候起了自己的祖宗们。

题目描述

有一个由 n1n - 1带权无向边连接成的有 nn 个节点的树,每个节点都有它对应的编号以及权值 viv_{i},整棵树的根节点为编号为 11 的节点。

令 $f(a, b, c) = (a - b) \times \left[a^2 + b^2 + a \times b + 3 \times c \times (a + b + c)\right]$,其中 a,b,ca,b,c 可以为任意整数。同时用 did_i 表示 ii 到根节点的每条边的边权之和。

现在天才 Z 要进行 TT 次询问,每次询问给定四个正整数 l1,r1,l2,r2l_{1},r_{1},l_{2},r_{2},你要从编号在区间 [l1,r1][l_{1}, r_{1}][l2,r2][l_{2}, r_{2}] 的点中各选择一个点 ppqq,当然你选择的两个点需要保证 pqp \neq q。用 rr 表示 ppqq 的最近公共祖先,要使得 $|f(d_{p} - d_{r}, d_{q} - d_{r}, d_{r})| + |v_{p} - v_{q}|$ 的值最大,而你需要对每次询问输出这个最大值。

输入格式

第一行输入两个正整数 nnTT,表示这棵树的节点个数以及询问次数。

第二行输入 nn 个整数,第 ii 个数表示编号为 ii 的节点的权值。

接下来 n1n - 1 行,每行输入三个整数 u,v,wu,v,w,表示节点 uu 到节点 vv 之间有一条边权为 ww 的无向边。

接下来 TT 行,每行输入四个整数 l1,r1,l2,r2l_{1},r_{1},l_{2},r_{2},表示一次询问(意义如题面所述)。

输出格式

输出 TT 行,每行输出一个整数,表示每次询问的答案。

7 2
5 1 7 12 5 9 6
1 2 5
3 1 1
6 2 9
4 6 14
7 6 4
5 2 10
2 4 5 7
1 1 3 3
19211
3

提示

样例解释

对于第一次询问,我们在两个区间分别取 44 号点和 66 号点即可得出答案 1921119211

对于第二次询问,两个区间都只能取一个节点,所以答案为 33

数据范围

本题采用捆绑测试

  • Subtask 1(5 points):1n,T101 \leqslant n, T \leqslant 10
  • Subtask 2(10 points):1n,T1001 \leqslant n, T \leqslant 100
  • Subtask 3(30 points):1n,T30001 \leqslant n, T \leqslant 3000
  • Subtask 4(55 points):无特殊限制。

对于所有数据,1n,T2×1051 \leqslant n, T \leqslant 2 \times 10^50w250 \leqslant |w| \leqslant 251vx1091 \leqslant v_{x} \leqslant 10^91l1r1n1 \leqslant l_{1} \leqslant r_{1} \leqslant n1l2r2n1 \leqslant l_{2} \leqslant r_{2} \leqslant n,保证树中最大深度不超过 100100

注意:两个区间 [l1,r1][l_{1}, r_{1}][l2,r2][l_{2}, r_{2}] 可能有重合部分。