#ATarc160e. [ARC160E] Make Biconnected

[ARC160E] Make Biconnected

题目描述

给定一棵有 NN 个顶点的无向树 GGGG 的所有顶点的度数都不超过 33
顶点编号为 11NN。边编号为 11N1N-1,第 ii 条边连接顶点 uiu_i 和顶点 viv_i
此外,每个顶点都有一个权值,第 ii 个顶点的权值为 WiW_i

你可以在 GG 上添加 00 条或多条边。若在顶点 ii 和顶点 jj 之间添加一条边,则需要花费 Wi+WjW_i + W_j 的代价。

请输出一种添加边的方法,使得满足以下条件,并且总代价最小:

  • GG 是二重顶点连通的。也就是说,对于 GG 中任意一个顶点 vv,即使将 vv 及其所有相邻的边从 GG 中移除,GG 依然保持连通。

给定 TT 组测试数据,请分别输出每组的答案。

输入格式

输入以如下格式从标准输入给出,其中 casei\mathrm{case}_i 表示第 ii 个测试用例。

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
\vdots
caseT\mathrm{case}_T

每个测试用例的输入格式如下:

NN
W1 W2  WNW_1\ W_2\ \dots\ W_N
u1 v1u_1\ v_1
u2 v2u_2\ v_2
\vdots
uN1 vN1u_{N-1}\ v_{N-1}

输出格式

对于每个测试用例,输出如下格式的答案。设:

  • 需要添加的边数为 MM
  • ii 条添加的边连接顶点 aia_i 和顶点 bib_i

如果有多种方案都能达到最小总代价,输出任意一种即可。

MM
a1 b1a_1\ b_1
a2 b2a_2\ b_2
\vdots
aM bMa_M\ b_M

样例 1

输入

2
3
2 3 5
1 2
2 3
7
1 10 100 1000 10000 100000 1000000
1 2
2 3
2 4
3 5
3 6
4 7

输出

1
1 3
2
7 6
1 5

说明/提示

限制条件

  • 1T2×1051 \leq T \leq 2 \times 10^5
  • 3N2×1053 \leq N \leq 2 \times 10^5
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 输入给定的图是树
  • 输入给定的图中所有顶点的度数不超过 33
  • 1Wi1091 \leq W_i \leq 10^9
  • WiW_i 是整数
  • 所有测试用例中 NN 的总和不超过 2×1052 \times 10^5

样例解释 1

在第 11 个测试用例中,连接顶点 11 和顶点 33 可以使 GG 满足题目要求。此时总代价为 W1+W3=2+5=7W_1 + W_3 = 2 + 5 = 7。不存在总代价小于 77 且满足条件的方案,因此这是最优解。
在第 22 个测试用例中,总代价为 $(W\_7 + W\_6) + (W\_1 + W\_5) = 1100000 + 10001 = 1110001$,这是最小的。

由 ChatGPT 4.1 翻译