简介
做网络流最大流的题,常用的算法就是Dinic's algorithm。时间复杂度为,通常由于出题人水平较低,几乎能过所有的题。功利地看,这样就没问题了。但是,站在追求真(zhuang)理(B)的角度上。我们有理由去了解更多的算法。
事实上网络流最大流算法,(在具有正确性的前提下,)大体分两类:增广路(augmenting path)算法和推进-重标号(push-relabel)算法(又称预流推进(preflow-push)算法,括号外面的是我自己翻译的)。前一类很常用,常见的同时也是比较优秀的有Edmonds-Karp Algorithm()和Dinic's algorithm(
)。后类个体之间的区别在于优化方式,普通的做法复杂度达到了
,队列优化(此种优化后的算法又称HLPP,Hig

本文介绍了网络流最大流算法中的Push-Relabel方法,包括其基本原理和优化策略,特别是使用优先队列进行优化后的性能提升。讨论了如何避免形成环和堰塞湖,并通过调整节点高度来解决问题。虽然基础版本的时间复杂度较高,但通过优先队列优化可达到更优的时间复杂度。
最低0.47元/天 解锁文章
426

被折叠的 条评论
为什么被折叠?



