#P11852. [TOIP 2023] 公路

[TOIP 2023] 公路

题目描述

某國的公路網由 nn 個城鎮(編號 1n1\sim n)和 mm 條連接兩個相異城鎮的雙向公路組成,每條公路有其長度,以公里表示。最近該國流行起電動車,但是公路之間都沒有充電站,電動車只能在城鎮充電。該國交通部門官員十分擔心有些被觀光局規劃好的旅程會使電動車的續航力沒辦法走完一條公路,也因此,官員希望旅程中使用到的最長公路長度要盡量短,否則若有些電動車的實際續航力低於一段公路的長度,它們一定會在公路中間沒電。

對於一趟被規劃好的旅程,觀光局會為其決定好一個起點 uu 和終點 vv,並找出 兩條\textbf{兩條}uuvv 公路相互不重複\textbf{公路相互不重複} 的路徑,來做為一個完整的旅程規劃。例如下圖是一個 n=7n=7m=9m=9 的例子,點上標示城鎮的編號,邊上標示公路的長度。

若要規劃城鎮 11 到城鎮 22 的旅程,可以採用以下兩條路徑:

  • 121\to 2 以及 1321\to 3\to 2

這兩條路徑中,所使用的到的最長公路長度是 88 公里,但若採用以下兩條路徑:

  • 121\to 2 以及 13521\to 3\to 5\to 2

就可以將使用的最長公路長度降低至 55,也是使最長公路最短的選擇方式。而若要規劃城鎮 11 到城鎮 66 的旅程,可以採用以下兩條路徑:

  • 1361\to 3\to 6 以及 1253461\to 2\to 5\to 3\to 4\to 6

使用的最長公路長度是 77,同時也是使最長公路最短的選擇方式,注意到雖然這兩條路徑共用了同一個城鎮 33,但條件只要求「使用的公路不重複」,因此為一種滿足條件的路徑選擇方式。

一個旅程的兩條路徑所使用的最長公路愈短,則該旅程愈佳。今給定 qq 對起終點,請寫程式計算每對起終點之最佳旅程使用到的最長公路長度,或者回報不存在任何一種路徑的選擇方式。

输入格式

nn mm
a1a_1 b1b_1 l1l_1
a2a_2 b2b_2 l2l_2
\vdots
ama_m bmb_m lml_m
qq
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uqu_q vqv_q

  • nn, mm 分別代表城鎮和公路的數量。
  • ii 條公路連接著城鎮 aia_ibib_i,且長度為 lil_i 公里。
  • qq 代表預計規劃的旅程數量。
  • ii 個旅程預計選擇 uiu_i 作為起點、viv_i 作為終點。

输出格式

p1p_1
p2p_2
\vdots
pqp_q

  • pip_i 為一整數
    • pi=1p_i = -1,則表示不存在路徑的選擇方法可以完整的規劃第 ii 個旅程。
    • 否則,pip_i 代表在最佳的路徑選擇方式下,第 ii 個旅程所使用到的最長公路長度最小值。
7 9
1 2 5
1 3 3
2 3 8
2 5 3
3 4 3
3 5 4
3 6 2
4 6 7
6 7 6
3
1 2
1 6
3 7
5
7
-1

提示

測資限制

  • 2n10002 \le n \le 1000
  • $n - 1 \le m \le \displaystyle\frac{n\times (n-1)}{2}$。
  • 1ai,bin1 \le a_i, b_i \le naibia_i \ne b_i
  • 1li1091 \le l_i \le 10^9
  • 不會有兩條公路連接著相同的一組城鎮。
  • 1q5×1051 \le q \le 5\times 10^5
  • 1ui,vin1 \le u_i, v_i \le nuiviu_i \ne v_i
  • 輸入的數皆為整數。
  • 保證任兩個城鎮可以透過若干條公路直接或間接抵達。

評分說明

本題共有四組子任務,條件限制如下所示。 每一組可有一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。

子任務 分數 額外輸入限制
1 1818 n100n \le 100m,q300m, q \le 300li=1l_i = 1
2 3131 n500n \le 500m,q1000m, q \le 1000
3 2222 m3000m\le 3000
4 2929 無額外限制