2093:【22CSPS提高组】数据传输(transmit)

2093:【22CSPS提高组】数据传输(transmit)

时间限制: 3000 ms 内存限制: 524288 KB

提交数: 172 通过数: 72

【题目描述】

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

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

在计算机网络中,数据的传输往往需要通过若干次转发。假定小 C 需要将数据从主机 aa 传输到主机 b(a≠b)b(a≠b),则其会选择出若干台用于传输的主机 c1c1 = aa, c2c2, · · · , cm−1cm−1, cmcm = bb,并按照如下规则转发:对于所有的 1≤i<m1≤i<m, 主机 cici 将信息直接发送给 ci+1ci+1。

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

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

【输入】

输入的第一行包含三个正整数 nn, QQ, kk,分别表示网络主机个数,请求个数,传输参数。数据保证 1≤n≤2×1051≤n≤2×105, 1≤Q≤2×1051≤Q≤2×105, 1≤k≤31≤k≤3。

输入的第二行包含 nn 个正整数,第 ii 个正整数表示 vivi,保证 1≤vi≤1091≤vi≤109。

接下来 n−1n−1 行,第 ii 行包含两个正整数 aiai, bibi,表示一条连接主机 aiai, bibi 的网线。保证 1≤ai,bi≤n1≤ai,bi≤n。

接下来 QQ 行,第 ii 行包含两个正整数 sisi, titi,表示一次从主机 sisi 发送数据到主机 titi的请求。保证 1≤si1≤si, ti≤nti≤n, si≠tisi≠ti。

【输出】

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 解释】

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

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

【数据范围】

对于所有的测试数据,满足 1≤n≤2×1051≤n≤2×105, 1≤Q≤2×1051≤Q≤2×105, 1≤k≤31≤k≤3, 1≤ai,bi≤n1≤ai,bi≤n, 1≤si,ti≤n1≤si,ti≤n, si≠tisi≠ti。

测试点

n

Q

k

特殊性质

1

≤ 10

≤ 10

=2

2

=3

3

≤ 200

≤ 200

=2

4,5

=3

6,7

≤ 2000

≤ 2000

=1

8,9

=2

10,11

=3

12,13

≤ 2 × 105

≤ 2 × 105

=1

14

≤ 5 × 104

≤ 5 × 104

=2

15,16

≤105

≤ 105

17,18,19

≤2 × 105

≤ 2 × 105

20

≤5 × 104

≤ 5 × 104

=3

21,22

≤105

≤ 105

23,24,25

≤2 × 105

≤ 2 × 105

特殊性质:保证 ai=i+1ai=i+1,而 bibi 则从 11, 22, . . . , ii 中等概率选取。

题解:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
括号树是一种特殊的树结构,它是由一对成对的括号组成的。括号树的构建方式是,根据一定的规则将字符串中的括号进行匹配,然后将匹配到的括号作为子树插入到父节点中。 对于一个有效的括号字符串,它可以表示为一棵括号树。括号树的根节点表示整个括号字符串,根节点的子节点代表着括号字符串中每一对括号所形成的子字符串。 括号树的构建过程可以通过遍历字符串来实现。当遇到左括号时,将其作为一个新的节点插入到树中,并将其设置为当前节点;当遇到右括号时,将其作为当前节点的子节点,并更新当前节点为其父节点;当遇到其他字符时,将其作为当前节点的值。 通过括号树,我们可以轻松地判断一个括号字符串是否是有效的。如果括号树构建成功,并且深度遍历整个括号树的时候没有出现左括号的数量小于右括号的数量的情况,那么该括号字符串就是有效的。 括号树在编程中有着广泛的应用。例如,在编译器设计中,括号树可以用于语法分析阶段的表达式处理,帮助判断表达式是否满足文法规则。此外,在计算机科学的算法设计中,括号树也可以用于求解最长有效括号子串、括号生成和括号匹配等问题。 总之,括号树是一种用于表达和处理括号字符串的树结构,它能够很好地帮助我们理解和处理括号相关的问题。通过括号树的构建和遍历,我们可以判断括号字符串是否有效,并且可以应用于各种编程和算法设计的场景中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值