前言
摆王兴致冲冲地跑到我们机房来对我说跟你讲一个黑科技。。。
Dinic的神奇优化
Dinic优化
我们发现如果Dinic不建反向边会跑的飞起(当然Wa是必然的)
所以考虑在加反向边的基础上优化.
首先我们记录网络中最大的一个流量,设它为Min,然后:
- 把所有小于Min的边都加入网络中
- 最大流+=Dinic()
- Min /= 2
- 到1 然后在Dinic时不走反向边(但是值要改变),最后在可以走反向边的情况下再来一次
注意bfs的一些操作,如果不当会溢出...
代码实现
#include #include #include #include #include #include #include #include