P2053 修車 網路流,費用流

2021-08-20 21:41:32 字數 1264 閱讀 7753

n和m搞反調半天系列

又m個員工,n輛車,第j個員工修第i輛車需要t[i][j]的時間,求分配讓顧客平均等待時間最短。

首先先假設乙個修車工要修1−

w 1−w

個人,那麼對等待時間就要加上t[

1]∗w

+t[2

]∗(w

−1).

..+t

[w−1

]∗2+

t[w]

t [1

]∗w+

t[2]

∗(w−

1)..

.+t[

w−1]

∗2+t

[w]那我們可以將m個修車工拆成m*n個人表示第m個人第n次修車,然後可以將顧客和修車工建立完全二分圖,權值為權值

∗第幾次

權 值∗

第幾次之後將原點連車,工人連匯點。

#include

#include

#include

using namespace std;

struct linea[100081];

int tot,n,m,s,t,f[5001],ls[5001],tail,answer;

intstate[5001],x,y,w,c,ans,head,pre[5001];

bool v[5001];

void addl(int

x,int

y,int w,int c)

bool spfa()}}

v[x]=false;

}if (f[t]==2147483647) return

0; else

return1;}

void upway()

}int main()

for (int i=n*m+1;i<=n*m+n;i++)

addl(s,i,1,0);//連原點

for (int i=1;i<=n*m;i++)

addl(i,t,1,0);//連匯點

while (spfa())

printf("%.2lf",1.0

*ans/n);

}

最小費用流 洛谷P2053

傳送門 教練我想學數學建模。網路流和最小費用流的題目不存在 難度,不存在變形 目前來說是的,不知道是不是我沒做過對於模板修改的題目 難度主要在於,你能看出來它是個網路流,並且還能正確的建模。大喊一句,教練我想學數學建模!這個題目建模不是很簡單。首先,我們要知道乙個人可以修n輛車,那麼m個人就可以修n...

費用流 SCOI2007 修車

同一時刻有 nn 位車主帶著他們的愛車來到了汽車維修中心。維修中心共有 mm 位技術人員,不同的技術人員對不同的車進行維修所用的時間是不同的。現在需要安排這 mm 位技術人員所維修的車及順序,使得顧客平均等待的時間最小。說明 顧客的等待時間是指從他把車送至維修中心到維修完畢所用的時間。對於每乙個修車...

網路流 費用流

這個好像不考 沒事可以騙分 費用流,顧名思義,就是有費用的流,也就是說,給乙個網路流圖中的每條弧增加乙個單位流量費用。一般來說求解的費用流都是最大流最小費用。好像沒什麼好bb的 這裡推薦使用zkw演算法求解最小費用流,看著 理解就行,應該還是很好理解的。zkw演算法在稠密圖上跑得飛快,在稀疏圖上還不...