模板参考kuangbin的模板
这些是我们数据结构方面
const int maxn=510;
int uN,vN;//v点,u点的最大数量
int g[maxn][maxn];//邻接矩阵
int linker[maxn];//边的关系,联系起来了即linker[v]=u;
bool used[maxn];//是否访问过
直接上代码:
#include
using namespace std;
const int maxn=510;
int uN,vN;//v点,u点的最大数量
int g[maxn][maxn];//邻接矩阵
int linker[maxn];//边的关系,联系起来了即linker[v]=u;
bool used[maxn];//是否访问过
bool dfs(int u)
{
for(int v=0;v
邻接矩阵:g[u][v]如果u和v有连接就为1否则为0
dfs搜索 用于找到可以匹配的边,如果匹配到的边被人匹配了,就去申请让这个边匹配的点可以不可以换一个边匹配(反复进行这个操作让知道回溯到第一个点)根据返回结果看这个点可以不可以匹配。
hungary() 函数 返回的值就是该二分图的最大匹配数量
算法思想:https://blog.csdn.net/kirito9943/article/details/81448179
二分图最大匹配(匈牙利算法)邻接表版链接:https://blog.csdn.net/kirito9943/article/details/81436210