題目鏈結w
ww 公司有 m
mm 個倉庫和 n
nn 個零售商店。第 i
ii 個倉庫有 a
ia_i
ai 個單位的貨物;第 j
jj 個零售商店需要 b
jb_j
bj 個單位的貨物。
貨物供需平衡.
從第 i
ii 個倉庫運送每單位貨物到第 j
jj 個零售商店的費用為 cij
c_ci
j 。
試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,使總運輸費用最少。
費用流模板題。
建源點和匯點連邊。
源點向每個倉庫i
ii連邊,流量為倉庫i
ii的貨物數量,費用為000.
每個商店j
jj向匯點連邊,流量為商店j
jj的需求量,費用為000.
以上兩種邊的目的都是限制流量,同時因為貨物供需平衡,最後一定能全部滿足。
最後每個倉庫i
ii向商店j
jj連邊,流量為inf
infin
f,費用為cij
c_ci
j. 如果這種邊通過流量,那麼就說明倉庫i
ii運送了貨物到商店jjj.
最後跑費用流就好了。
#include
#include
#include
#include
using
namespace std;
const
int maxn=
105;
const
int maxm=
1000005
;const
int inf=
0x7f7f7f7f
;const
long
long linf=
1e18
;struct node
edge[maxm<<1]
;bool vis[maxn<<2]
;int head[maxn<<2]
,k,s,t;
long
long dist[maxn<<2]
,tot_cost;
void
add(
int u,
int v,
int w,
long
long c)
bool
spfa()
}}}return dist[s]
!=linf;
}int
dfs(
int x,
int f)
}return flow;
}void
zkw()}
if(tot_cost>=0)
printf
("%lld\n"
,tot_cost)
;else
printf
("%lld\n"
,-tot_cost);}
int n,m,a[maxn]
,b[maxn]
,cost[maxn]
[maxn]
;int
main()
洛谷P4015 運輸問題 費用流
ww 公司有 mm 個倉庫和 nn 個零售商店。第 ii 個倉庫有 a iai 個單位的貨物 第 jj 個零售商店需要 b jbj 個單位的貨物。貨物供需平衡,即 sum limits a i sum limits b ji 1 m ai j 1 n bj 從第 ii 個倉庫運送每單位貨物到第 jj...
P4015 運輸問題
w 公司有 m 個倉庫和 n 個零售商店。第 i 個倉庫有 a i 個單位的貨物 第 j 個零售商店需要 b j 個單位的貨物。貨物供需平衡,即 sum limits a i sum limits b j 從第 i 個倉庫運送每單位貨物到第 j 個零售商店的費用為 c 試設計乙個將倉庫中所有貨物運送...
洛谷 2680 運輸計畫 題解
部落格觀賞效果更佳 n nn個點的邊帶權樹,給m mm條關鍵的鏈。把樹上一條邊的權值變為0,使得m mm條鏈的和中,最大值最小。n,m 1 e5 n,m 1e5 n,m 1 e5。二分最大值k kk。現在考慮如何檢驗乙個kkk。找到所有鏈和 k k k的鏈,設這裡面最長的鏈長度為s ss,有c cc...