題目描述
A 國有 n 座城市昼蛀,編號(hào)從 1 到 n雀瓢,城市之間有 m 條雙向道路梅掠。每一條道路對車輛都有重量限制酌住,簡稱限重。現(xiàn)在有 q 輛貨車在運(yùn)輸貨物阎抒,司機(jī)們想知道每輛車在不超過車輛限重的情況下酪我,最多能運(yùn)多重的貨物。
輸入描述
第一行有兩個(gè)用一個(gè)空格隔開的整數(shù) n且叁,m都哭,表示 A 國有 n 座城市和 m 條道路。
接下來 m 行每行 3 個(gè)整數(shù) x逞带、y欺矫、z,每兩個(gè)整數(shù)之間用一個(gè)空格隔開展氓,表示從 x 號(hào)城市到 y 號(hào)城市有一條限重為 z 的道路汇陆。注意:x 不等于 y,兩座城市之間可能有多條道路带饱。
接下來一行有一個(gè)整數(shù) q毡代,表示有 q 輛貨車需要運(yùn)貨。
接下來 q 行勺疼,每行兩個(gè)整數(shù) x教寂、y,之間用一個(gè)空格隔開执庐,表示一輛貨車需要從 x 城市運(yùn)輸貨物到 y 城市酪耕,注意:x 不等于 y。
輸出描述
輸出共有 q 行轨淌,每行一個(gè)整數(shù)迂烁,表示對于每一輛貨車,它的最大載重是多少递鹉。如果貨車不能到達(dá)目的地盟步,輸出-1。
樣例輸入
4 3
1 2 4
2 3 3
3 1 1
3
1 3
1 4
1 3
樣例輸出
3
-1
3
數(shù)據(jù)范圍及提示
對于 30%的數(shù)據(jù)躏结,0 < n < 1,000却盘,0 < m < 10,000,0 < q < 1,000;
對于 60%的數(shù)據(jù)黄橘,0 < n < 1,000兆览,0 < m < 50,000,0 < q < 1,000塞关;
對于 100%的數(shù)據(jù)抬探,0 < n < 10,000,0 < m < 50,000帆赢,0 < q < 30,000驶睦,0 ≤ z ≤ 100,000。
題解
盡可能多的運(yùn)貨匿醒,就需要貪心一下,走能承受的最大的一條路
這就相當(dāng)于:在一個(gè)無向有權(quán)圖缠导,從A到B的最大生成樹上的最小的邊權(quán)
kruscal構(gòu)建最大生成樹廉羔,然后遍歷一下樹上的點(diǎn),找出最小的那個(gè)點(diǎn)
恩僻造,雖然還后很多奇奇怪怪的東西憋他,但我這個(gè)瓜皮都不會(huì)【攤手】
代碼慢慢整理吧~