题目背景
阳光开朗大男孩天才 Z 今天要向蕉太狼表白力!
众所周知,蕉太狼是一个很可爱的女孩纸。
从前的天才 Z 总是担心因为自己表白失败而受到别人的嘲笑。但是今天,天才 Z 就要做出自己一生中最重要的一件事,那就是真诚地表白,无论后果如何。
出乎意料,蕉太狼其实也喜欢着天才 Z!
天才 Z 开心得像个 0#。
但是没过多久,天才 Z 就被甩力,原因蕉太狼发现天才 Z 对自己的闺蜜有非分之想。
天才 Z 拿出了自己的树状家谱,问候起了自己的祖宗们。
题目描述
有一个由 n−1 条带权无向边连接成的有 n 个节点的树,每个节点都有它对应的编号以及权值 vi,整棵树的根节点为编号为 1 的节点。
令 f(a,b,c)=(a−b)×[a2+b2+a×b+3×c×(a+b+c)],其中 a,b,c 可以为任意整数。同时用 di 表示 i 到根节点的每条边的边权之和。
现在天才 Z 要进行 T 次询问,每次询问给定四个正整数 l1,r1,l2,r2,你要从编号在区间 [l1,r1] 和 [l2,r2] 的点中各选择一个点 p 和 q,当然你选择的两个点需要保证 p=q。用 r 表示 p 和 q 的最近公共祖先,要使得 ∣f(dp−dr,dq−dr,dr)∣+∣vp−vq∣ 的值最大,而你需要对每次询问输出这个最大值。
输入格式
第一行输入两个正整数 n 和 T,表示这棵树的节点个数以及询问次数。
第二行输入 n 个整数,第 i 个数表示编号为 i 的节点的权值。
接下来 n−1 行,每行输入三个整数 u,v,w,表示节点 u 到节点 v 之间有一条边权为 w 的无向边。
接下来 T 行,每行输入四个整数 l1,r1,l2,r2,表示一次询问(意义如题面所述)。
输出格式
输出 T 行,每行输出一个整数,表示每次询问的答案。
提示
样例解释
对于第一次询问,我们在两个区间分别取 4 号点和 6 号点即可得出答案 19211。
对于第二次询问,两个区间都只能取一个节点,所以答案为 3。
数据范围
本题采用捆绑测试。
- Subtask 1(5 points):1⩽n,T⩽10。
- Subtask 2(10 points):1⩽n,T⩽100。
- Subtask 3(30 points):1⩽n,T⩽3000。
- Subtask 4(55 points):无特殊限制。
对于所有数据,1⩽n,T⩽2×105,0⩽∣w∣⩽25,1⩽vx⩽109,1⩽l1⩽r1⩽n,1⩽l2⩽r2⩽n,保证树中最大深度不超过 100。
注意:两个区间 [l1,r1] 和 [l2,r2] 可能有重合部分。