A3745 「OOI 2022 Day 1」两条大街

暂无评定 传统题 国际知名赛事 上传者
时间限制6000ms
内存限制1024MiB
通过 / 提交0/0

A3745「OOI 2022 Day 1」两条大街

暂无评定 传统题 国际知名赛事 上传者
时间限制6000ms
内存限制1024MiB
通过 / 提交0/0

题目描述

题目译自 Open Olympiad in Informatics 2022 Day1 T2 「Два проспекта / Two avenues」。

为了让伯兰迪亚的首都成为更具吸引力的旅游目的地,伟大的国王制定了一个计划:选择城市中的两条街道,并将它们命名为大街。当然,这些大街将被宣布为极其重要的历史遗迹,这应该会吸引来自世界各地的游客。

伯兰迪亚的首都可以表示为一个图,图的顶点是路口,边是直接连接两个路口的街道。图中共有 nn 个顶点和 mm 条边,每条街道都可以双向通行,从任意一个路口可以仅通过街道到达任意另一个路口,每条街道连接两个不同的路口,且没有两条街道连接相同的路口对。

为了减少普通市民在大街上的通行流量,决定对每条大街的双向通行收取费用。现在,每次通过大街需支付 11 个图格里克,而通过其他街道则无需支付费用。

分析人员收集了 kk 个市民的样本数据,其中第 ii 个市民需要从路口 aia_i 前往路口 bib_i 上班。在选择两条大街后,每个市民将选择费用最小的路径前往上班。

为了尽可能多地赚取费用,决定选择两条街道作为大街,使得这 kk 个市民支付的图格里克总数最大化。请帮助国王:根据给定的城市布局和市民样本数据,找出应选择哪两条街道作为大街,以及在这种选择下市民将支付多少图格里克。

输入格式

每个测试点包含多组输入数据。第一行包含两个整数,第一个数字 tt (1≤t≤105)(1 \leq t \leq 10^{5})表示输入数据的组数,第二个数字 gg (0≤g≤7)(0 \leq g \leq 7) 表示子任务编号。接下来是各组数据的描述。

每组数据的第一行包含两个整数 nn 和 mm $(3 \leq n \leq 500000, n-1 \leq m \leq 500000, m \leq \frac{n(n-1)}{2})$,分别表示城市中路口的数量和街道的数量。

接下来的 mm 行描述街道,第 ii 行包含两个整数 sis_i 和 fif_i (1≤si,fi≤n,si≠fi)(1 \leq s_i, f_i \leq n, s_i \neq f_i),表示第 ii 条街道连接的两个路口的编号。保证没有两条街道连接相同的路口对,且从任意一个路口可以仅通过街道到达任意另一个路口。

接下来的一行包含一个整数 kk (1≤k≤500000)(1 \leq k \leq 500000),表示样本中市民的数量。

接下来的 kk 行描述市民,第 ii 行包含两个整数 aia_i 和 bib_i (1≤ai,bi≤n,ai≠bi)(1 \leq a_i, b_i \leq n, a_i \neq b_i),表示第 ii 个市民从路口 aia_i 前往路口 bib_i 上班。

设 MM 表示所有数据组中 mm 的总和,KK 表示所有数据组中 kk 的总和。保证 M,K≤500000M, K \leq 500000。

输出格式

对于每组输入数据,输出问题的答案。

答案的第一行输出市民支付的图格里克总数。

答案的第二行输出两个整数 x1x_1 和 y1y_1,表示应作为第一条大街的街道所连接的两个路口的编号。

答案的第三行输出两个整数 x2x_2 和 y2y_2,表示应作为第二条大街的街道所连接的两个路口的编号。

连接街道的路口编号可以按任意顺序输出,每条输出的街道必须是城市中 mm 条街道之一,且两条选择的街道必须不同。

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

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

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 1414 n≤20n \leq 20,m≤20m \leq 20,K≤1000K \leq 1000 00 t≤100t \leq 100
22 1111 n≤100n \leq 100,M≤2000M \leq 2000,K≤2000K \leq 2000 0∼10 \sim 1
33 1515 n≤2000n \leq 2000,M≤20000M \leq 20000,K≤20000K \leq 20000 0∼20 \sim 2
44 1616 M≤100000M \leq 100000,K≤100000K \leq 100000 0∼30 \sim 3
55 1111 n=m+1n = m + 1
66 1919 每个路口恰好连接 22 条街道
77 1414 0∼60 \sim 6