网络流口糊
板子
无源汇上下界可行流
- 令所有边达到其下界,设 \(W'(i)\) 为 \(i\) 点目前积蓄/亏损的流量(流量不平衡)。所有边改为 \([0,up-down]\)。
- 设立超级源点 \(s'\) 超级汇点\(t'\) ,对于 \(W'(i)>0\) 的点,和 \(s'\) 连一条容量为 \([0,W'(i)]\)的边,否则与 \(t'\) 连一条容量为 \(-W'(i)\) 的边。
- 跑最大流,若所有以 \(s',t'\) 作为端点的边(后文称之附加边)均满流,则存在合法解。
有源汇上下界可行流
只是多了一个不需满足流量平衡的 \(s,t\)。从 \(t\) 向 \(s\) 连一条容量为 \([0,INF]\) 的边。
然后跑无源汇上下界可行流,此时可行流大小为边 \([t,s]\) 的流量。
有源汇上下界最大流
已知可行流,那么最大流即为在可行流的基础上增广得到。
删去所有的附加边。跑 \((S,T)\) 的最大流即可。
应在跑完可行流后的残留网络上跑。不能在原网络跑。
总流量为 原先的可行流流量 + 增广多出来的流量。
有源汇上下界最小费用可行流
在上下界可行流的基础上增加费用即可。
不过附加边的代价为 \(0\) ,在计算完可行流代价后,加上所有的下界乘代价即可。
有源汇上下界最小费用最大流
同有源汇上下界最小费用可行流,记得判边权。
有源汇上下界最小流
退流。
跑出任意一条可行流,然后由 \(t'\) 跑 \(u'\) 的最大流。
可行流流量减去 \([t',u']\) 流量即为最小流。
另一类上下界可行流建边方法
对于边 \((u,v)\) 。
从 \(v\) 向 \(u\) 建一条容量为 \(up-down\) 的边。
建\(s'→v\)流量为 \(down\) 的边,
\(u→t'\)流量为 \(down\)的边。
两种建边其实很相似。前者依靠类似闭合子图的方法进行判定,后者则直接将流量架空,相当于赋上势能。
建模
待填....