線性規劃與網路流24題 17 運輸問題

2021-07-22 21:29:54 字數 1476 閱讀 9633

description

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

貨物供需平衡,即sigma(ai)==sigma(bj)。

從第i個倉庫運送每單位貨物到第j個零售商店的費用為cij。試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,

使總運輸費用最少。

input

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

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

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

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

output

程式執行結束時,將計算出的最少運輸費用和最多運輸費用輸出

sample input

2 3

220 280

170 120 210

77 39 105

150 186 122

sample output

48500

69140

這個題看完題意就是個很水的題

因為建立乙個源點s,給貨物連邊(s,xi,i點的貨物總量,inf)

每個貨物連到每個商店(xi,yj,inf,i->j的單位費用)

建立乙個匯點t,從商店連到t()

然後就是裸的最小費用最大流和最大費用最大流啦!

#includeusing namespace std;

const int maxm=1050;

const int maxn=1050;

const int inf=0x3f3f3f3f;

int s,t,tot,n,m;

int a[maxm];

int b[maxn];

int mp[maxm][maxn];

struct edgeedge[105000];

int head[maxn],tol;

int pre[maxn],dis[maxn];

bool vis[maxn];

void addedge(int u,int v,int cap,int cost)

bool spfa(int s,int t)}}

}if (pre[t]==-1) return false;

return true;

}int mincostmaxflow(int s,int t,int &cost)

flow+=min;

}return flow;

}int main()

return 0;

}

線性規劃與網路流24題 4 魔術球

線性規劃與網路流24題 4 魔術球 description 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為 1,2,3,的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根...

線性規劃與網路流24題 11航空路線問題

這個題輸出部分還有很多不解。感覺這題的給出的題解中沒考慮細節問題。比如第二組資料,按題解來說的話就不行了。就不貼那個題解了。詳細見程式。include include include includeusing namespace std define inf 1000000000 define m ...

線性規劃與網路流24題 8 14 孤島營救問題

1944 年,特種兵麥克接到國防部的命令,要求立即趕赴太平洋上的乙個孤島,營救被敵軍俘虜的大兵瑞恩。瑞恩被關押在乙個迷宮裡,迷宮地形複雜,但幸好麥克得到了 迷宮的地形圖。迷宮的外形是乙個長方形,其南北方向被劃分為n 行,東西方向被劃分為m列,於是整個迷宮被劃分為n m 個單元。每乙個單元的位置可用乙...