有关网络流建模的学习笔记

话说网络流这个东西,其题面的特点就是:就算告诉你这道题是网络流,你也不会做(有点皮)

所以说,dzyo大佬就给我们总结了一些基本模型,感觉打开了通往新世界的大门……

 

最大匹配

用网络流来解决最大匹配这类问题

首先题目中一般会出现“最多,至多”这类字眼,或者问“是否有一种分配方案满足条件”

这个时候你就可以思考一下网络流了

考虑一条流就是一种合法方案, 你所需要做的就是确定流量限制以保证一条流流到最后,无论怎么流都是合法的

如果还有费用什么的,你就往边权上加

来一打例题,都是求最大匹配的问题

dining                             football match                              PIGS

candy                              how many shortest paths       

 

 

最小路径覆盖

记得很久以前写过有关这方面的一道例题(觉得自己写得真好,O(∩_∩)O哈哈~,皮一下)那么就再上一道例题

然而这个不是重点,重点是最小链覆盖

我之前倒是一直没搞清楚链和路径的区别是什么,今天才算是搞清楚了

最小路径覆盖:又名最小路径点覆盖

最小链覆盖:又名最小路径可重复点覆盖

知道其全名过后,总算是搞明白了,链的话一个节点可以被覆盖多次,而路径的话一个节点只能被覆盖一次

有向无环图的最小路径可重复点覆盖,等价于先对有向图进行传递闭包(FLoyd),再在此基础上求最小路径点覆盖

在这里传递闭包起的作用就是将本会重复经过同一点的链,现在就不重复走,改成路径

再感性理解一下,就是假设两条路都经过i点,按照普通的方法,只能走一次i点。第二个就没法走了。

所以我们floyd传递闭包,直接跳过那个i点,让两条路直接相连,那么就可以忽略那个重复的i点了

例题来一道

 

dzyo老师说如果存在 x → y,相当于 x 可以跳过 y 去匹配之后的。 在网络流的时候 y ′ 向 y 连边即可。

但各路大神都没用这个方法A题,我就先不尝试这个啦

 

最长反链

最长反链是一些点的集合,在这个集合中任意两个点,互相不能到达

这个东西就当结论记住好啦,那个什么某D定理(dzyo就是这么叫的,╭(╯^╰)╮)Dilworth定理,这个怎么证明的就不糊了

我们记住:最长反链 = 最小链覆盖,就好啦.

例题

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值