最小路径覆盖与二分图的理解

情况是这样的, 告诉点与点之间的可以到达的关系,要问,利用这些到达的关系,最少能用几条路径,使得每一个点只被经过一次.

思路: 二分图上跑网络流:即最大的二分匹配思路

在这里插入图片描述
这样的情况 我把它叫做最大路径覆盖,即每一个节点与自己的影子节点直接链接,从S到T的流量能够最大,与节点的数量一致.

那么我要求最小的路径覆盖,我可以基于上图这个最大的路径覆盖,方案是上图的每一条路径其实都是一个独立的点形成一个路径,那我的思路就是把这些个独立的点尽量打包形成尽量少的单元.

在这里插入图片描述
删除所有点与自己影子节点的链接, 再画如图的边, 中间的边的含义是从左边这个点可以在图上到达右边这个点, 那么我对于这个图求最大的匹配, 可以理解为我表达的含义就是这些点本来是像第一个图那样独立链接s和t的,这样就是把这些独立的点都链接再一起.比如最大匹配中有3------5’(3号左边点到5号点,)所以链接左边的三号和右边的5号影子节点.那么我可以理解的含义就是5号点的前驱节点可以是3号,那么3,5两个点就共同组成了一个S到T的路径,(而5号左边点又可以去右边找与自己配对的点,如找到7,找到的话就自然的理解为3,5,7是一个路径)即他们之间建立了联系.,因为所有边的容量都是1,所以每一个左边的点只能够匹配一次,每一个右边的点只能够匹配一次,满足题目中路径的概念. 这里的重点就是理解二分图中每次有一个边的匹配中被选中的, 那么这个被选中的点就被加入了某一个现成的路径中不再是一个点一个路径的存在了.所以在上方第一个图的 基础上少了一个路径.

所以求解的最终方案就是图1中的最大匹配(与点的个数一致,不用真的求), 减去图二中的最大匹配

这里有一个模板题,洛谷的, 思路和求法与上述完全一致

洛谷P2172部落战争.
如果看不懂的话可能是我没有表述清楚, 已经尽力了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值