問題描述
在艾澤拉斯,有n個城市。編號為1,2,3,…,n。
城市之間有m條雙向的公路,連線著兩個城市,從某個城市到另乙個城市,會遭到聯盟的攻擊,進而損失一定的血量。
沒經過乙個城市,都會被收取一定的過路費(包括起點和終點)。路上並沒有收費站。
假設1為暴風城,n為奧格瑞瑪,而他的血量最多為b,出發時他的血量是滿的。
歪嘴哦不希望花很多錢,他想知道,在可以到達奧格瑞瑪的情況下,他所經過的所有城市中最多的一次收取的費用的最小值是多少。
輸入
第一行3個正整數,n,m,b。分別表示有n個城市,m條公路,歪嘴哦的血量為b。
接下來有n行,每行1個正整數,fi。表示經過城市i,需要交費fi元。
再接下來有m行,每行3個正整數,ai,bi,ci(1<=ai,bi<=n)。表示城市ai和城市bi之間有一條公路,如果從城市ai到城市bi,或者從城市bi到城市ai,會損失ci的血量。
輸出
僅乙個整數,表示歪嘴哦交費最多的一次的最小值。
如果他無法到達奧格瑞瑪,輸出afk。
樣例輸入
4 4 8
8 5
6 10
2 1 2
2 4 1
1 3 4
3 4 3
樣例輸出
10演算法討論
我們將每個城市的過路費記錄下來,找出最大最小值,在這兩者之間二分,記錄當前二分值,跑一遍spfa,若二分值可以讓歪嘴哦達到終點,說明歪嘴哦有可能用更少的**到終點,向左二分;若不能,則說明歪嘴哦要用更多的**到終點,向右二分。直到l>=r得出答案。
洛谷1462 通往奧格瑞瑪的道路
洛谷1462 通往奧格瑞瑪的道路 題目背景 在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 題目描述 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著...
洛谷 1462 通往奧格瑞瑪的道路
題目大意 有n個城市,m條雙向聯通的道路,到達每個城市需要耗費一定的血量和費用,如果血量就會死亡,求在可以到達奧格瑞瑪的情況下,所經過的所有城市中最多的一次收取的費用的最小值是多少。思路 spfa 二分答案 include define inf 1000000001 define m 100001 ...
洛谷1462 通往奧格瑞瑪的道路
思路 先判斷afk的情況,以血量為權值,用spfa演算法計算一次最短路徑,檢查是否能在血量大於0的情況下到達終點。然後,對各城市的過路費進行排序,用二分法依次嘗試能否在不超過某費用的前提下經過各個城市且到達終點時血量大於0。1 include 2 include 3 include 4 includ...