[学习笔记]模拟费用流
机械费用流图很大时候很慢
有的时候图很规则有序(如树形,序列)就可以人工模拟加速。
真:人工智能
这玩意就是模拟费用流的一种:堆贪心
不带修比较全的:https://blog.csdn.net/litble/article/details/88410435
经典问题:老鼠和洞
老鼠洞各有权值,匹配,最大化总和
序列:从左往右扫,
到了老鼠i,wi加入堆,
到了洞j,找权值最大的未匹配老鼠或者已经匹配的洞k,如果valk+vj>0,更新ans,pop,然后把-vj加入堆
外向树:可并堆进行上述操作
费用流解释,
而我们不断扩大子树范围,本质是费用流的动态加点和动态加边
通常费用流成立是因为贪心选择最大的,但是子树不一定是最大的增广路
如果不是最大的,
需要做的是消去正环
而新老鼠和已经匹配的老鼠进行匹配就是在消正环!~!
所以这里反悔实际可能从S走回S。。
我们实际上在用人工模拟动态加边的过程来做不动态加边的费用流
带修?也就是模拟动态加边费用流
考虑怎样增广会更优或者消正环即可。
细节在于处理反向边
这里T3是弱化版:省选模拟赛第十四轮
无非就是:
加边,增广,修改反向边
建出真正的费用流的图考虑更直观!