本節的主題是 flow network,只有一道題用到了樸素的最大流算法。

Drainage Ditches (ditch)

此題是一個最基本的最大流問題,可以用基于Ford-Fulkerson的Edmonds-Karp算法。

Ford-Fulkerson(G,s,t)
1 .for each edge(u,v)∈E[G]
2.     do f[u,v]=0
3.          f[v,u]=0
4.while there exists a path p from s to t in the residual network Gf
5      do cf(p)←min{ cf(u,v) : (u,v)is in p}
6.for each edge(u,v) in p
7.     do f[u,v]=f[u,v]+cf(p)
8.         f[v,u]=-f[u,v]

Edmonds-Karp


The Perfect Stall (stall4)
二分圖匹配,可以用最大流做,也可以用匈牙利匹配算法。關于匈牙利匹配,詳見http://www.shnenglu.com/RyanWang/archive/2008/11/16/67054.html。
Hungary



Job Processing (job)
首先講a和b分開考慮,單獨用貪心算法可以分別求出單獨操作a和b的最短時間------best=min(start[i]+time[i]).start[i]=best;不斷更新n次。然后a中最先完成的物品放在b中操作時間最長的機器上可以達到最優策略。
CODE

Cowcycles (cowcycle)
qinz是這樣說的:“這題很有趣,數據范圍很嚇人,如果無視數據范圍誰都知道這是一道枚舉題,重點在于計算上的一些優化。據說除法比乘法慢多了所以盡量不用除法就不要用了,而且里面會有很多重復的除法運算,所以我把數據范圍可能用到的除法都先打表出來,div[i][j]=i/j,還有幾個運算時用到頻率特別高的常量也先計算好,如r*f、1/(r*f-1)。其中最無奈的一個優化是排序算法的選擇!我用qsort在第五個數據過不去,但用冒泡居然過了,最后用sort更快,最慢的數據為0.7s(不知道這樣是快是慢)。結論是,我該從qsort轉移到sort了,STL確實很優秀。”