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