NOIP2013 D1T3 貨車運輸

2022-04-30 14:21:10 字數 1751 閱讀 7665

[noip2013t3]貨車運輸

背景noip2013day1

描述a 國有 n 座城市,編號從 1 到 n,城市之間有 m 條雙向道路。每一條道路對車輛都有重

量限制,簡稱限重。現在有 q 輛貨車在運輸貨物, 司機們想知道每輛車在不超過車輛限重的

情況下,最多能運多重的貨物。

輸入格式

輸入檔案第一行有兩個用乙個空格隔開的整數 n, m, 表示 a 國有 n 座城市和 m 條道

路。 接下來 m 行每行 3 個整數 x、 y、 z,每兩個整數之間用乙個空格隔開,表示從 x 號城市

到 y 號城市有一條限重為 z 的道路。注意: x 不等於 y,兩座城市之間可能有多條道路。

接下來一行有乙個整數 q,表示有 q 輛貨車需要運貨。

接下來 q 行,每行兩個整數 x、 y,之間用乙個空格隔開,表示一輛貨車需要從 x 城市

運輸貨物到 y 城市,注意: x 不等於 y。

輸出格式

輸出共有 q 行,每行乙個整數,表示對於每一輛貨車,它的最大載重是多少。如果貨

車不能到達目的地,輸出-1。

測試樣例1

輸入4 3

1 2 4

2 3 3

3 1 1

3 1 3

1 4

1 3

輸出3

-1

3 備註

對於 30%的資料, 0 < n< 1,000, 0 < m< 10,000, 0 < q< 1,000;

對於 60%的資料, 0 < n< 1,000, 0 < m< 50,000, 0 < q< 1,000;

對於 100%的資料, 0 < n< 1,000, 0 < m< 50,000, 0 < q< 30,000,0 ≤ z ≤ 100,000。

隊長說 也可以用樹鏈剖分寫….(可是並不會(。・・)ノ)

NOIP2013 D1T3 貨車運輸 zz恥辱記

目錄先來證明下lemma 圖上2點間最小邊權最大的路徑一定在mst上 感性理解下 每次kruskal algo都連線最大的不成環邊 此時有2個未聯通的聯通塊被連起來.那麼考慮u,v兩點的聯通塊 它們並起來時選的邊最大.將比這條邊大的邊加入生成樹不能使得u,v聯通 這個思想是kruskal重構樹的基礎...

NOIP2013 D1 T2火柴排隊

涵涵有兩盒火柴,每盒裝有 n 根火柴,每根火柴都有乙個高度。現在將每盒中的火柴各自排成一列,同一列火柴的高度互不相同,兩列火柴之間的距離定義為 ai bi 2 其中 ai 表示第一列火柴中第 i 個火柴的高度,bi 表示第二列火柴中第 i 個火柴的高度。每列火柴中相鄰兩根火柴的位置都可以交換,請你通...

noip2013 d1t2 火柴排隊

看不出是逆序對.感覺藥丸 首先要看出最優解就是兩個陣列均有序的時候 再對兩個陣列的下標求逆序對即可 歸併 樹狀陣列 1 include2 include3 include4 include5 include6 define modd 99999997 7using namespace std 8co...