#CSPS202204. 数据传输

数据传输

题目描述

小 C 正在设计计算机网络中的路由系统。

测试用的网络总共有nn台主机,依次编号为1n1 \sim n。这nn台主机之间由n1n- 1根网线连接,第ii条网线连接个主机aia_ibib_i。保证任意两台主机可以通过有限根网线直接或者间接地相连。受制于信息发送的功率,主机aa能够直接将信息传输给主机bb当且仅当两个主机在可以通过不超过kk根网线直接或者间接的相连。

在计算机网络中,数据的传输往往需要通过若干次转发。假定小 C 需要将数据从主机aa传输到主机bbaba \neq b),则其会选择出若干台用于传输的主机c1=a,c2,,cm1,cm=bc_1 = a, c_2, \ldots, c_{m - 1}, c_m = b,并按照如下规则转发:对于所有的1i<m1 \le i < m,主机cic_i将信息直接发送给ci+1c_{i + 1}

每台主机处理信息都需要一定的时间,第ii台主机处理信息需要viv_i单位的时间。数据在网络中的传输非常迅速,因此传输的时间可以忽略不计。据此,上述传输过程花费的时间为i=1mvci\sum_{i = 1}^{m} v_{c_i}

现在总共有qq次数据发送请求,第ii次请求会从主机sis_i发送数据到主机tit_i。小 C 想要知道,对于每一次请求至少需要花费多少单位时间才能完成传输。

输入格式

输入的第一行包含三个正整数n,Q,kn, Q, k,分别表示网络主机个数,请求个数,传输参数。数据保证1n2×1051 \le n \le 2 \times {10}^51Q2×1051 \le Q \le 2 \times {10}^51k31 \le k \le 3

输入的第二行包含nn个正整数,第ii个正整数表示viv_i,保证1vi1091 \le v_i \le {10}^9

接下来n1n - 1行,第ii行包含两个正整数ai,bia_i, b_i,表示一条连接主机ai,bia_i, b_i的网线。保证1ai,bin1 \le a_i, b_i \le n

接下来QQ行,第ii行包含两个正整数si,tis_i, t_i,表示一次从主机sis_i发送数据到主机tit_i的请求。保证1si,tinsiti1 \le s_i, t_i \le n,s_i \ne t_i

输出格式

QQ行,每行一个正整数,表示第ii次请求在传输的时候至少需要花费多少单位的时间。

输入输出样例

7 3 3
1 2 3 4 5 6 7
1 2
1 3
2 4
2 5
3 6
3 7
4 7
5 6
1 2
12
12
3

样例 1 解释

对于第一组请求,由于主机4,74, 7之间需要至少44根网线才能连接,因此数据无法在两台主机之间直接传输,其至少需要一次转发;我们让其在主机11进行一次转发,不难发现主机11和主机4,74, 7之间都只需要两根网线即可连接,且主机11的数据处理时间仅为11,为所有主机中最小,因此最少传输的时间为4+1+7=124 + 1 + 7 = 12

对于第三组请求,由于主机1,21, 2之间只需要11根网线就能连接,因此数据直接传输就是最优解,最少传输的时间为1+2=31 + 2 = 3

数据规模与约定

对于所有的测试数据,满足1n2×1051 \le n \le 2 \times {10}^51Q2×1051 \le Q \le 2 \times {10}^51k31 \le k \le 31ai1 \le a_i, binb_i \le n1si,tin,siti1 \le s_i, t_i \le n,s_i \ne t_i

测试点 nn\leq QQ\leq k=k= 特殊性质
11 1010 22
22 33
33 200200 22
454\sim5 33
676\sim7 20002000 11
898\sim9 22
101110\sim11 33
121312\sim13 21052*10^5 11
1414 51045*10^4 22
151615\sim16 10510^5
171917\sim19 21052*10^5
2020 51045*10^4 33
212221\sim22 10510^5
232523\sim25 21052*10^5

特殊性质:保证ai=i+1a_i = i + 1,而bib_i则从1,2,,i1, 2, \ldots, i中等概率选取。