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演算法在稠密圖上跑得飛快,在稀疏圖上還不...