编程题
### 问题描述 小乐给你一棵 $n$ 个节点的有根树($1$ 号节点为根),每个节点都有一个权值 $w_i$,他定义了如下值: - $d(u,v)$:表示 $u$ 和 $v$ 之间的距离。 - $f(u,v)$:表示 $u$ 到 $v$ 的这条路径上的所有点的权值之和。 - $g(u,v)$:表示从 $u$ 走到 $v$ 的代价,小乐每次从 $u$ 点出发走到 $v$,同时他有一次跳跃机会, 他可以直接跳到和 $u$ 到根节点路径上的任意一个点 $u'$,那么 $g(u,v)=d(u,u')^2+f(u',v)$。 他现在有 $Q$ 次询问,每次询问给出两个正整数 $u,v$,表示询问 $g(u,v)$ 的最小值。 ### 输入格式 第 $1$ 行输入两个正整数 $n,Q$,分别表示树的节点个数,以及询问次数。 第 $2$ 行输入 $n$ 个非负整数 $w_i$,表示每个点的点权。 接下来 $n -1$ 行,每行两个正整数 $u,v$,表示 $u$ 与 $v$ 之间有一条边。 接下来 $Q$ 行,每行两个正整数 $u,v$,表示询问 $g(u,v)$ 的最小值。 ### 输出格式 对于 $Q$ 次询问,每次询问都要在一行输出 $g(u,v)$ 的最小值。 ### 样例输入 ``` 6 2 1 2 3 4 5 6 1 2 1 3 2 4 2 5 3 6 1 4 4 6 ``` ### 样例输出 ``` 7 12 ``` ### 评测数据规模 对于所有评测数据,$1\leq n,Q\leq10^5$,$0\leq w_i\leq10^4$,且保证 $\sum w\leq10^4$,$1\leq u,v\leq n$。
查看答案
赣ICP备20007335号-2