atcoder#ARC160E. [ARC160E] Make Biconnected

[ARC160E] Make Biconnected

配点 : 800800

問題文

NN 頂点の無向木 GG が与えられます。G の全ての頂点の次数は 3 以下です。 頂点には 11 から NN の番号がついています。辺には 11 から N1N-1 までの番号がついていて、辺 ii は頂点 uiu_i と頂点 viv_i を結んでいます。 また、全ての頂点には重みが設定されていて、頂点 ii の重みは WiW_i です。

あなたは GG00 本以上の辺を追加します。頂点 ii と頂点 jj の間に辺を追加すると Wi+WjW_i + W_j のコストがかかります。

次の条件を満たすように辺を追加する方法のうち、コストの総和が最小である方法を 11 つ出力してください。

  • GG は二重頂点連結である。つまり、GG 内の任意の頂点 vv について、GG から頂点 vv および vv に隣接する辺を取り除いても GG は連結な状態を保っている。

TT 個のテストケースが与えられるので、それぞれについて答えてください。

制約

  • 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 以下

入力

入力は以下の形式で標準入力から与えられる。ここで、casei\mathrm{case}_iii 番目のテストケースを意味する。

TT

case1\mathrm{case}_1

case2\mathrm{case}_2

\vdots

caseN\mathrm{case}_N

各テストケースは以下の形式で与えられる。

NN

W1W_1 W2W_2 \dots WNW_N

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uN1u_{N-1} vN1v_{N-1}

出力

各テストケースについて、以下の形式で答えを出力せよ。ここで、

  • 追加する辺の本数は MM 本で、
  • ii 本目の追加する辺は頂点 aia_i と頂点 bib_i を結んでいる

とする。

答えが複数ある場合は、どれを出力しても正答とみなされる。

MM

a1a_1 b1b_1

a2a_2 b2b_2

\vdots

aMa_M bMb_M

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

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$ になり、これが最小です。