二分图最大匹配(匈牙利算法)

来源:互联网 发布:孙兴民热刺本赛季数据 编辑:程序博客网 时间:2024/04/29 23:45

前言:二分图最大匹配其实就是二分匹配
利用了增广路的思想实现了点对间的一一配对
若想理解匈牙利算法可点击此链接

代码实现是比较简单的,匈牙利算法在很多关于匹配的题目中有很灵活的运用(纯属博主瞎逼
复杂度为Onm

代码实现如下:

int link[M];bool vis[N];bool Look(int x){    for(int i=0;i<edge[x].size();i++){        int v=edge[x][i];        if(vis[i])continue;        vis[i]=1;        if(link[i]==-1||Look(link[i])){            link[v]=x;            return 1;        }        vis[i]=0;    }    return 0;}void check(int m){    memset(link,-1,sizeof(link));    for(int i=1;i<=m;i++){        memset(vis,0,szieof(vis));        if(Look(i))ans++;    }}
原创粉丝点击