网络流总结

半世苍凉 提交于 2019-12-06 16:17:23

网络流不要算复杂度,远远达不到上界。但注意控制点数。

普通最大流可以处理无下界有上界的问题

最小割通常要找到性质转化为二分图。

常见转化:

要求“至少”下界但没有上界,求“最小”。反一下。先满足所有要求,再最吝啬地拿走“最大流”。

例题

《士兵占领》:行列是独立的点集,在点放兵相当于在两个集间连边。反一下走流量就成了在该行该列同时减人,跑最大流即可。

 

拆点:很实用的思想,也很不好想。

如果$x1$在$Y$的操作对后面有影响,或$x$的顺序影响$Y$的贡献,且影响不能通过流量和费用表示出来,那么就可把$Y$拆成多个点,表示在某尺度上的差别。

例题

《紧急疏散evacuate》:一个人通过会在同一时间同一出口后卡住后面的人,而后面的人依旧可以被鸽到下一秒,所以把门拆成k个点,t向t+1连inf边。

《修车》:最小平均即求最小总时间,倒数第i个修有贡献i*t(让自己和后边的人都等了t),这个转化很妙。对于修的顺序有不同费用,所以对人和车的关系拆点(权值乘上倒数系数),跑最小费用最大流。

 

最小割:

结论:最小割等于最大流

非板子,一般要找到二分图的性质。也就是说图不能太“长”。

常见模型:

多叉戟:选点有花费,点集有收益。(可以处理两种选择)

$|V|$和$|E|$都是m级别

inf边表示连通必不能割。

记总收益$sum=\sum\limits_{i=1}^{m} w_i$。

割掉c代表为了保留(获得)w付出相应的代价,割掉w表示代价太高那不要收益。

综上用$ans=sum-maxflow$

 

例题:

《最大获利》:直接建三叉戟就行。

《happiness》:同时的关系要表现在同时割掉两个单边那么就要保留一个复合边,通过思考瞎试有下复合三叉戟结构

感觉没有什么规律,更多的是在试。。。

《employ人员雇佣》:咕

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!