zoukankan      html  css  js  c++  java
  • 最小路径覆盖的注意之处

      

    本片系转载:http://www.cnblogs.com/ka200812/archive/2011/07/31/2122641.html

    首先,最小路径覆盖=总节点数-最大匹配数。这个应该已经是路人皆知了。

    所谓最小路径覆盖,是指在一个有向图中,找出最少的几条路径,用它们来覆盖全图

    这里说的值得注意的地方,如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了

    举个例子,假设有图:1->2     2->5     2->3      4->2,事实上,这其实就是两条边:1->5  4->3 ,节点2只是他们的一个交点

    如果只是简单的在原图的基础上求二分匹配,那么得到的匹配答案是2,最小路径覆盖答案便是5-2=3。

    可是随便一看都能看看出端倪,这个图中,只需要两个点便可以探索完整个地图,这里最小路径覆盖数明显是2。

    问题究竟出在哪里呢?其实就和这个交点2有关。既然边有相交,那么他们的连通性也应该连通下去。

    解决的办法是对原图进行一次闭包传递(也就是flody),于是便增加了四条边:1->3   1->5   4->3  4->5

    这时再求最大匹配数,匹配答案便是3,最小路径覆盖值为2,这是正确答案!

  • 相关阅读:
    vue2.0之render函数
    vuex学习笔记
    js小知识点
    vue2.0路由进阶
    vue2.0使用slot插槽分发内容
    js事件机制
    firefox在引入vue.js后不支持e=e||window.event的解决办法
    qs.js使用方法
    除了使用URLSearchParams处理axios发送的数据,但是兼容性不好,其他的兼容方法
    定义设置滚动条
  • 原文地址:https://www.cnblogs.com/khan724/p/4107013.html
Copyright © 2011-2022 走看看