網路流24題 LuoguP4015 運輸問題

2021-08-21 19:29:38 字數 1671 閱讀 3292

w 公司有 m 個倉庫和 n 個零售商店。第 i 個倉庫有 ai 個單位的貨物;第 j 個零售商店需要 bj​ 個單位的貨物。

貨物供需平衡,即 ∑ai=∑bj​ 。

從第 i 個倉庫運送每單位貨物到第 j 個零售商店的費用為 cij​ ​​ 。

試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,使總運輸費用最少。

第 1 行有 2 個正整數 m 和 n ,分別表示倉庫數和零售商店數。

接下來的一行中有 m 個正整數 ai​ ,表示第 i 個倉庫有 ai​ 個單位的貨物。

再接下來的一行中有 n 個正整數 bj​ ,表示第 j 個零售商店需要 bj 個單位的貨物。

接下來的 m 行,每行有 n 個整數,表示從第 i 個倉庫運送每單位貨物到第 j 個零售商店的費用 cij​ 。

兩行分別輸出最小運輸費用和最大運輸費用。

2 3

220 280

170 120 210

77 39 105

150 186 122

48500

69140

1≤n,m≤100

學yjq大佬用記事本打**的第一題

這 跟上一道題有什麼區別嗎?!「網路流24題」負載平衡問題

還是有點區別的

從s往每個倉庫連邊,容量ai 費用0

從每個商店向t連邊,容量bj 費用0

每個倉庫向每個商店連邊 容量inf 費用cij

還講一下記事本打**的初體驗吧

注意力瞬間集中是真的,沒那麼在意手速也是真的

掛了兩次 第一次ce(dfs(x,inf)

第二次 居然掛在n,m反向讀入???woc???

果然還是個菜雞啊qaq

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define r register

const

int inf=999999999;

int n,m,s,t;

struct emma[100007];

int h[207];

int tot=1;

void con(int u,int v,int w,int f)

void scan()

for(r int i=1;i<=n;++i)

for(r int i=1;i<=m;++i)

for(r int j=1;j<=n;++j)

return;

}queue

q;bool sf[207];

int d[207];

bool spfa()

}sf[x]=0;

}return d[t]long

long ans=0;

int dfs(int x,int al)

}if(!fl)d[x]=-inf;

return fl;

}void run()

}cout

ans=0;

while(spfa())

}cout

<<-ans}int main()

下次要用沒有自動對齊的純·記事本 2333

網路流24題 數字梯形問題 luogu 4013

題目描述 這裡 極其裸的一道費用流問題 然後將出入點之間的流量設為1,邊權設為0,這樣就有效保證了乙個點只經過一次 接下來,我們從上一行的出點向下一行的入點連邊,容量為1,費用為下一行對應點的代價的相反數,然後建起超級源點與超級終點,分別向第一行的入點連邊,容量1費用0,由最後一行出點向終點連邊,容...

網路流 24 題

1 搭配飛行員 題意 n個飛行員,其中有m名飛行員是正駕駛員。飛機每架有兩個駕駛員,需乙個正駕駛員和乙個副駕駛員。由於種種原因,例如相互配合的問題,有些駕駛員不能在同一架飛機上飛行,問如何搭配駕駛員才能使出航的飛機最多。思路 裸二分圖匹配 最大流 題 版本一 網路流做法 引入源點s 0以及匯點t n...

網路流24題

學會網路流演算法後,我們要做的就是把問題轉化成網路流問題。求二分圖最大匹配。網路流建模要找到問題的關鍵特點,用連邊,流量 以及費用 把原問題轉化成網路流問題,包括最大流,最小割,費用流。二分圖最大匹配的特點是每個點最多屬於一條匹配邊。這相當於是說,每個點只能流過一次。要求的是最大匹配,可以得出建模為...