codevs1914 運輸問題

2022-05-20 07:43:26 字數 1707 閱讀 7746

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 3

220 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 第一行有兩個用乙...