以HDU 3549这道模板题来分别给出我的EK,DINIC,SAP算法,原题连接:http://acm.hdu.edu.cn/showproblem.php?pid=3549
一般地,求解最大流问题存在EK,DINIC,SAP三种算法。EK算法是基于BFS寻找增广路的,SAP算法是利用距离标号,DINIC算法是利用分层网络来寻找增广路。具体原理和一些基本概念我这里就不再赘述了。相关书籍已经写得非常清楚了。我是参考《ACM-ICPC程序设计系列-图论及其应用》的第5章的网络流。
下面给出我的三种算法的模板,都通过了HDU3549的测试。
EK算法
#include
#include
#include
#include
#include
#include
#include
#include
#include
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SAP算法
#include
#include
#include
#include
#include
#include
#include
#include
#include
----------------------------------------------------------------------------------------------------------------------------------DINIC算法
#include
#include
#include
#include
#include
#include
#include
#include
#include