w 公司有m個倉庫和n 個零售商店。第i 個倉庫有ai 個單位的貨物;第j 個零售商店需要bj個單位的貨物。貨物供需平衡,即 sum(si)=sum(bj)
。從第i 個倉庫運送每單位貨物到
第j 個零售商店的費用為cij 。試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,
使總運輸費用最少。
程式設計任務:
對於給定的m 個倉庫和n 個零售商店間運送貨物的費用,計算最優運輸方案和最差運輸方案。
的第1行有2 個正整數m和n,分別表示倉庫數和零售商店數。接下來的一行中有m個正整數ai ,1≤i≤m,表示第i個倉庫有ai 個單位的貨
物。再接下來的一行中有n個正整數bj ,1≤j≤n,表示第j個零售商店需要bj 個單位的貨
物。接下來的m行,每行有n個整數,表示從第i 個倉庫運送每單位貨物到第j個零售商店
的費用cij 。
將計算出的最少運輸費用和最多運輸費用輸出
2 3220 280
170 120 210
77 39 105
150 186 122
48500啊啊啊啊啊啊啊啊69140
又是上次的錯誤
調了乙個多小時
感謝某位大佬(哭唧唧。。。)
題目本身其實並不難
只是要記得跑最短路時dis陣列初始化為inf
跑最長路時dis陣列初始化為-inf!dis陣列初始化為-inf!
dis陣列初始化為-inf!
當沒有負權邊時可為-1,但是因為費用流反向弧費用為原流的相反數
所以原來為正數的邊權變為了負數
所以dis陣列初始化為-inf!
每次都是因為僅初始為-1而調很久
所以保險起見都初始為-inf吧
**寫得略醜
見諒見諒
#include#include#includeconst int inf=0x3f3f3f3f,n=50000;struct node
e[1000000],f[1000000];
int first[n],dis[n],qu[n],bo[n],from[n],first2[n];
int cnt=1,s,t,ans=0;
void insert(int u,int v,int q,int c)
bool spfa()
else qu[j++]=f[k].to;if(j==n)j=0;
bo[f[k].to]=1;}}
} }if(dis[t]==-inf) return 0;
return 1;
}void fa()
{ int min=inf;
for(int k=from[t];k;k=from[e[k].from])
min=min
網路流24題 code vs 1914 運輸問題
時間限制 2 s 空間限制 256000 kb 題目等級 大師 master 題解 檢視執行結果 w 公司有m個倉庫和n 個零售商店。第i 個倉庫有ai 個單位的貨物 第j 個零售商店 需要bj個單位的貨物。貨物供需平衡,即 sum si sum bj 從第i 個倉庫運送每單位貨物到 第j 個零售商...
codevs 3287 貨車運輸
codevs 3287 貨車運輸 題目描述 description a 國有 n 座城市,編號從 1 到 n,城市之間有 m 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 q 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。輸入描述 input des...
codevs3287 貨車運輸
題目描述 description a 國有 n 座城市,編號從 1 到 n,城市之間有 m 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 q 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。輸入描述 input description 第一行有兩個用乙...