QOJ.ac

QOJ

Limite de temps : 5.0 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓

#10216. 数据包传输

Statistiques

给定一个代表路由器和信道的连通网络树。每个节点代表一个路由器,每条边代表连接两个路由器的信道。这些信道用于将数据包从一个路由器传输到其相邻的路由器之一,传输遵循 TCP/IP 协议。边上标记有 $t_i$,表示将数据包从 $u_i$ 传输到 $v_i$(或反之)所需的时间(单位任意)。

此外,每个路由器都有足够的存储容量来存储任意数量的数据包,它们可以无限期地存储数据包,并且可以通过不同的信道同时传输多个数据包。这意味着你不能通过当前已被另一传输占用的信道发送数据包。

你的任务是同时发送两个数据包,一个从 $s_1$ 路由器发送到 $d_1$ 路由器,另一个从 $s_2$ 路由器发送到 $d_2$ 路由器。确定最优传输策略,以最小化两个数据包从源点到达终点所需的最大时间。

输入格式

输入的第一行包含一个整数 $T(1 \le T \le 1000)$,表示测试用例的数量。每个测试用例的第一行包含两个整数 $N$ 和 $Q(1 \le N, Q \le 100000)$。接下来有 $N-1$ 行输入,每行包含三个整数 $u_i, v_i, t_i(1 \le u_i, v_i \le N, u_i \neq v_i, 1 \le t_i \le 10^9)$,表示树的第 $i$ 条边。

随后有 $Q$ 行,每行包含四个整数 $s_1, d_1, s_2, d_2(1 \le s_1, d_1, s_2, d_2 \le N)$,表示两个数据包的源路由器和目标路由器。保证所有测试用例中 $N$ 的总和不超过 $500000$,$Q$ 的总和不超过 $500000$。

输出格式

对于每个查询,请使用最优传输策略以最小化两个数据包送达的最大时间,并将该最小时间打印在单独的一行中。

样例

输入 1

2
8 3
1 2 3
2 3 5
2 6 7
3 4 4
4 5 3
6 7 2
1 8 6
1 8 2 6
1 5 2 3
5 8 8 5
4 2
1 2 1
2 3 1
3 4 1
1 2 3 4
1 4 2 3

输出 1

7
15
24
1
3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.