网络流的三个基本性质:
1、容量限制: f[u,v]<=c[u,v]
2、反对称性:f[u,v] = - f[v,u]
3、流量平衡: 对于不是源点也不是汇点的任意结点,流入该结点的流量和等于流出该结点的流量和。
增广路算法:
每次暴力找一条由源点到汇点的增广路,算入答案,记得连反向弧。
时间复杂度:O( n6 )
听说有一种算法叫两百行的高标推进,非常快——
Dinic:
每次给算出源点到各个点的最短距离,然后我们按照最短路径找增广路,直到源点不能找到汇点;
cur当前弧优化:
如果这条弧已经流完,那么我们下次没有必要再经过它,于是在链式前向星里标记就好了。
二分图时间复杂度:O( nm−−