1. 程式人生 > >【網路流】Link-Cut Tree優化網路流Dinic演算法

【網路流】Link-Cut Tree優化網路流Dinic演算法

偶然在知乎上看到的一篇文章中提到了用動態樹優化Dinic的思路,遂記錄此隨筆方便之後學習。

Dinic演算法是一個非常優秀的解決網路流模型的演算法,然而時間複雜度上界是O(V2E),有可能會被毒瘤出題人卡掉。

使用LCT可以優化Dinic演算法來達到優秀的O(VElogV)的複雜度上界。

我們只需要實現4個操作就可以實現快速增廣了。

1、加邊:每次增廣時加邊直到源匯點在一顆樹內

2、尋找路徑最小值:找到增廣路後尋找增廣路上餘量最小的邊

3、路徑修改:將增廣路上的邊全部減少增廣的流量

4、刪邊:刪去餘量為零的邊

以上四個操作用LCT化邊為點即可完成。