zoukankan      html  css  js  c++  java
  • [二分图]最大匹配

    二分图的定义,以及判断图是否为二分图都很简单了。

    现在要说二分图的最大匹配。

    首先是定义吧,完美匹配就是一一对应,而最大匹配则是最大可以匹配的条数

    完美匹配一定是最大匹配,图中不一定都有完美匹配。

     1 int dfs(int u)
     2 {
     3     for(int i=Link[u];i;i=e[i].next)
     4     {
     5         int v=e[i].y;
     6         if(!bok[v])
     7         {
     8             bok[v]=1;
     9             if(!cy[v]||dfs(cy[v]))
    10             {
    11                 cx[u]=v;
    12                 cy[v]=u;
    13                 return 1;
    14             }
    15         }
    16     }
    17     return 0;
    18 }
    1 for(int i=1;i<=n;i++)
    2         {
    3             for(int j=1;j<=m;j++)
    4                 bok[j]=0;
    5             if(dfs(i))
    6                 ans++;
    7         }
    8         if(ans>=n)   printf("YES
    ");
    9         else    printf("NO
    ");

    第二个就是ans的定义不是有几种不同的匹配方案,而是匹配数。

    当ans〉=一边端点时,才有一个完美匹配。

  • 相关阅读:
    4.14打印特殊图案
    4.13十进制/二进制转换器
    4.12程序运行时间
    4.11 计算文件的大小
    4.10文件的读写
    4.9位运算
    CyclicBarrier
    tar 命令
    MySQL 常用函数介绍
    mysql 表转 java 实体 sql
  • 原文地址:https://www.cnblogs.com/Kaike/p/11158443.html
Copyright © 2011-2022 走看看