[学习笔记]模拟费用流

机械费用流图很大时候很慢

有的时候图很规则有序(如树形,序列)就可以人工模拟加速。

真:人工智能

 

反悔自动机与反悔堆——有关贪心的反悔操作

这玩意就是模拟费用流的一种:堆贪心

不带修比较全的:https://blog.csdn.net/litble/article/details/88410435

 

经典问题:老鼠和洞

老鼠洞各有权值,匹配,最大化总和

 

 

序列:从左往右扫,

到了老鼠i,wi加入堆,

到了洞j,找权值最大的未匹配老鼠或者已经匹配的洞k,如果valk+vj>0,更新ans,pop,然后把-vj加入堆

外向树:可并堆进行上述操作

 

费用流解释,

而我们不断扩大子树范围,本质是费用流的动态加点和动态加边

 

通常费用流成立是因为贪心选择最大的,但是子树不一定是最大的增广路

如果不是最大的,

需要做的是消去正环

而新老鼠和已经匹配的老鼠进行匹配就是在消正环!~!

所以这里反悔实际可能从S走回S。。

 

我们实际上在用人工模拟动态加边的过程来做不动态加边的费用流

 

带修?也就是模拟动态加边费用流

考虑怎样增广会更优或者消正环即可。

细节在于处理反向边

LibreOJ NOI Round #2 Day 1T2

 

这里T3是弱化版:省选模拟赛第十四轮

 

无非就是:

加边,增广,修改反向边

建出真正的费用流的图考虑更直观!

 

posted @ 2019-07-08 16:04  *Miracle*  阅读(1220)  评论(0编辑  收藏  举报