育英晨跑(優先佇列)

2021-10-04 18:19:21 字數 1097 閱讀 6836

題目描述

在育英,大家最頭疼的事情就是晨跑了,因為每天早上大家都要被迫從溫暖的被窩爬起來去晨跑令人非常不爽。

lzy跑到每個點的用時都不一樣,現在lzy為了偷懶,想找一條耗時最短的捷徑,你能幫幫他嗎?

輸入

測試樣例由多組測試資料組成。每組測試資料第一行輸入兩個正整數n , m ( 1 <= n,m <= 100)

接下來輸入n * m 個數字 ,每個數字不超過 500

輸出

輸出lzy從起點跑到終點的最短用時

樣例輸入

3 33 2 1

3 2 1

3 2 1

樣例輸出

8和攻城略地一模一樣;優先佇列的知識點(之前沒學好),ok its my time。

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

struct node

;struct cmp};

int n,m;

int s[

105]

[105];

int dir[4]

[2]=

,,,}

;int vis[

105]

[105];

priority_queue

,cmp> p;

intbfs()

p.pop();

for(

int j=

0;j<

4;j++))

;}}}

}int

main()

} p.

push()

;int va=

bfs();

cout<}return0;

}

晨跑 費用流

乙個有向圖,每條邊有流量和費用,求在每個點只經過一次的情況下 ss和t t除外 的最小費用最大流。原題也很容易看出是費用流。難點在於如何保證每個點只經過一次。那麼不妨將除s,t s,t之外的點進行拆點。每個點可以拆成入點和出點,流量為1,費用為0。這樣就可以保證每個點之間的邊只能走一次,就達成了每個...

BZOJ1877 晨跑(費用流)

elaxia最近迷戀上了空手道,他為自己設定了一套健身計畫,比如俯臥撐 仰臥起坐等 等,不過到目前為止,他 堅持下來的只有晨跑。現在給出一張學校附近的地圖,這張地圖中包含n個十字路口和m條街道,elaxia只能從 一 個十字路口跑向另外乙個十字路口,街道之間只在十字路口處相交。elaxia每天從寢室...

晨跑 最小費用最大流

題目 晨跑 解題思路 建圖 把除了源點和匯點的其它路口拆成兩個點,入點和出點,兩點之間邊最大流量為1,費用為0,其他流量為inf,費用為長度 源程式 include include define inf 1e9 define min a,b a b?b a using namespace std s...