poj 3662 最短路 優先佇列 二分法

2021-05-25 08:01:05 字數 297 閱讀 8817

題目大意:乙個無向圖有n個點,p條邊,邊上有權值,現要把1和n連線起來,但最多提供k條邊免費,花費取路徑中其餘的邊中最大權值,求所需的最小花費。即要求選擇若干條邊構成頂點1到頂點n的一條路徑, 使得路徑上邊權最大值(不包括免費邊)最小.

思路:假設a是可行解,即路徑上邊權最大值為a,則該路徑上邊權大於a的邊一定小於等於k條。

若a不是最優解,那麼必然b

於是我們可以二分答案,得到乙個值x,將所有小於等於x的邊變為0,大於x的邊變為1。

做最短路,則1到n的距離就是所用權值大於x邊的條數。如果小於等於k,則是乙個可行解。

poj 3662 二分最短路(建模與轉化)

二分給出的p條邊,把大於的都當做電信贈送的線路,小於等於的都當做農夫自己買的線路。前者權值設為1,後者權值設為0,則最短路跑出來的結果和k值比較就知道是否滿足,繼續二分。include include include include include include include include i...

用優先佇列實現最短路

最短路其實一開始我也不會,感覺,這都是什麼啊,好複雜。然後自己給自己製造心理負擔。然後經過若干次的逛b站終於找到乙個大佬,燈神!然後我我終於弄懂了最短路,嗚嗚 然後又是幾個小時的瘋狂debug!然後發現最後的錯誤竟然的陣列初始化?難道我把基礎給丟了?別說了,我已經哭暈在廁所?最後 又是若干次codi...

最短路(dij 優先佇列優化)模板

有n個城市,求s到e的最短路徑 當n的值較小時,直接用 dij 演算法沒有問題,但是當數值較大或者訪問過多時就需要優化 演算法思想 貪心,從起點開始,不斷的尋找不同點到起始點的最短距離 鏈結一篇部落格 新增鏈結描述 include include include include include in...