• 二分图最大匹配——匈牙利算法


    其实所谓的“反色”就是改变mat的标记,mat其实不是叫路径(当然在增广的过程中)它的确起到了“记录前驱”的作用,但是,每趟增广之后,其实他代表的就是匹配
    例如 1和6匹配 那么mat[1]=6; mat[6]=1; 它不是前驱的作用
    所以严格来讲,增广的过程,是回到它之前的匹配点mat[i],然后要mat[i]重新找一个匹配点,只要能找到一个就立即记录并返回不要再找了,如果这个找不到了,那么其实已经
    找不到增广路了
    所以对于一个新的起点A,它一定能找到一个匹配点B(除非它是一个孤立点一条边都没有),如果还没有被匹配过,那么它就据为己有,如果已经被匹配了,那么它还是据为己有,并且强行要求B之前的匹配点C另外找一个匹配点D。

    而C找D的方法和A的方法是一样的,也就是说,C另外找的那个D如果没被匹配过,那么C据为己有,如果有了,还是据为己有,并且要求D之前的匹配点E去找新的匹配点………………(可以发现这是一个不断迭代的过程)

    接上面的,如果C能找到D(准确来说是这个迭代的过程成功),那么说这次增广成功,并且这次增广结束,
    新的匹配方案就是A-B,C-D(如果还有后续的迭代的话,就继续下去);否则的话,这次增广失败,B还是和原来的c匹配,A匹配失败,它只好找另一个和它相连的点B'',并且重复上面的操作

    在每一递归的时候,若某一层返回了1,那么就会一直返回1,直到主函数中,但是某层返回了0,只是返回到上一层,并且继续寻找另一个匹配点,并且有可能成功,不一定一直返回0直到主函数

  • 相关阅读:
    下载commons-fileupload-1.2.1.jar和commons-io-2.0.jar驱动包
    Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may
    jQury 入门 2 包装集
    JQuery 入门 1 ---定位
    JDBC连接mysql
    JSTL 的引入 JSTL包的下载
    mysql 的具体应用
    mysql 绿色版本的应用
    kong网关: service+route+upstream
    kong网关命令(一)
  • 原文地址:https://www.cnblogs.com/scau20110726/p/2789794.html
Copyright © 2020-2023  润新知