裸題意:
一個網絡,每條邊有容量,也有單位流量的費用。
此時最大流可能有多種,求費用最小的最大流費用。
下面給出最常用的一種方法:
- 以費用爲邊長,用SPFA沿還可以增廣的邊找出一條從源點到匯點的最短路,並記錄路徑和這條路上的最小流量
fmin 。若源匯點之間不連通就表示沒有增廣路了,當前費用就是最大流的最小費用。 - 然後增廣這條路,這條路的每條邊流量加
fmin ,這條路的增廣費用就是fmin∗d (d 是最短路長度)。然後繼續步驟1 。
大致證明:
用費用最短路找的增廣路一定是當前同流量中費用最小的一條增廣路。
若最短路長度爲
最後以這種貪心思想找出來的最大流一定是最小費用的。
只是時間。。。
引用某大神的一句話:“當一某道題的正解是用網絡流,那這時網絡流的時間複雜度就是
一些費用流題目: