二分图模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分图模板相关的知识,希望对你有一定的参考价值。

二分图的模板,需要用邻接矩阵存图,把有关系的标记为1,没有关系为0

int mp[maxn][maxn];
int book[maxn],vis[maxn],sum;
bool dfs(int x)
{
    for(int i=1;i<=m;i++)
    {
        if(mp[x][i]&&!vis[i]){
            vis[i]=1;
            if(book[i]==0||dfs(book[i])){
                book[i]=x;
                return 1;
            }
        }
    }
    return 0;
}
int solve()
{
    int sum=0;
    memset(book,0,sizeof(book));
    for(int i=1; i<=n; i++){
        memset(vis,0,sizeof(vis));
        if(dfs(i)) sum++;
    }
    return sum;
}

 

以上是关于二分图模板的主要内容,如果未能解决你的问题,请参考以下文章

二分图最大权完美匹配KM算法模板

最短路 二分图 模板

HDU - 1083 Courses (二分图最大匹配模板)

模板二分图匹配

[二分图初步]模板二分图匹配

匈牙利算法dfs模板 [二分图][二分图最大匹配]