考虑如下问题:
一个牧场由R*C个点组成。牧场内有若干条运输通道,通道流量上限是Ci,连接水平或者垂直相邻的的点。(1,1)内有很多干草,Farmer John希望将干草运送到点(R,C)。问最大流量是多少。1<R,C<=200。
一种直观的解法:
将每个站点看成点,相邻的点之间有边,流量上限为Ci。将(1,1)作为源,(R,C)作为汇,求最大流即可。
是否可行?
上述解法,点数最多为40000,边数最大为80000。用最大流sap求解复杂度为(n*n*m),显然不合理。
分析:
题目给出的是一个平面图,并且s和t都在图中无边界面的边界上。在这里,我们称之为S-T平面图。同时利用对偶图(面f-->点f*,边属于两个面f1、f2,有点(f1*,f2*))和原图的关系,转化为最短路径求解。