最大流+最小费用最大流
最大流
- 首先是网络流中的一些定义:
- V表示整个图中的所有结点的集合.
- E表示整个图中所有边的集合.
- G = (V,E) ,表示整个图.
- s表示网络的源点,t表示网络的汇点.
- 对于每条边(u,v),有一个容量c(u,v) (c(u,v)>=0),如果c(u,v)=0,则表示(u,v)不存在在网络中。相反,如果原网络中不存在边(u,v),则令c(u,v)=0.对于每条边(u,v),有一个流量f(u,v).一个简单的例子.网络可以被想象成一些输水的管道.括号内右边的数字表示管道的容量c,左边的数字表示这条管道的当前流量f.
- 网络流的三个性质:
1、容量限制: f[u,v]<=c[u,v]
2、反对称性:f[u,v] = - f[v,u]
3、流量平衡: 对于不是源点也不是汇点的任意结点,流入该结点的流量和等于流出该结点的流量和。 - 只要满足这三个性质,就是一个合法的网络流.最大流问题,就是求在满足网络流性质的情况下,源点 s 到汇点 t 的最大流量。
最小费用最大流
- 其他算法贝尔曼,spa,dinic
- Tarjan算法详解
Reference
C/C++基本语法学习
STL
C++ primer