首页 > 其他 > 详细

匈牙利算法

时间:2014-04-09 21:28:23      阅读:478      评论:0      收藏:0      [点我收藏+]

二分图最大匹配

bubuko.com,布布扣
struct node{
    int s,t,nxt ; 
}e[1005] ;
int k,m,n,head[505],cnt,match[505],vis[505] ;
int find(int s)
{
    for(int i=head[s] ;i!=-1 ;i=e[i].nxt)
    {
        int tt=e[i].t ;
        if(!vis[tt])
        {
            vis[tt]=1 ;
            if(match[tt]==-1 || find(match[tt]))
            {
                match[tt]=s ;
                return 1 ;
            }
        }
    }
    return 0 ;
}
int max_match()
{
    int ans=0 ;
    memset(match,-1,sizeof(match)) ;
    for(int i=1 ;i<=m ;i++)
    {
        memset(vis,0,sizeof(vis)) ;
        ans+=find(i);
    }
    return ans;
}
void add(int s,int t) {e[cnt].s=s ;e[cnt].t=t ;e[cnt].nxt=head[s] ;head[s]=cnt++ ;}
void read_graph()
{
    memset(head,-1,sizeof(head)) ;
    cnt=0 ;
    for(int i=0 ;i<k ;i++)
    {
        int s,t ;
        scanf("%d%d",&s,&t) ;
        add(s,t) ;
    }
}
View Code

 

匈牙利算法,布布扣,bubuko.com

匈牙利算法

原文:http://www.cnblogs.com/xiaohongmao/p/3653686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!