收藏 分享(赏)

二分图匹配模板.doc

上传人:11xg27ws 文档编号:9301841 上传时间:2019-08-01 格式:DOC 页数:6 大小:49.50KB
下载 相关 举报
二分图匹配模板.doc_第1页
第1页 / 共6页
二分图匹配模板.doc_第2页
第2页 / 共6页
二分图匹配模板.doc_第3页
第3页 / 共6页
二分图匹配模板.doc_第4页
第4页 / 共6页
二分图匹配模板.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、1、 图论匹配4。1 二分图最大匹配(hungary 邻接表) /二分图最大匹配,hungary 算法,邻接表形式,复杂度 O(m*e)/返回最大匹配数,传入二分图大小 m,n 和邻接表 list(只需一边 )/match1,match2 返回一个最大匹配 ,未匹配顶点 match 值为-1#include #define MAXN 310#define _clr(x) memset(x,0xff,sizeof(int)*MAXN)struct edge_tint from,to;edge_t* next;int hungary(int m,int n,edge_t* list,int* ma

2、tch1,int* match2)int sMAXN,tMAXN,p,q,ret=0,i,j,k;edge_t* e;for (_clr(match1),_clr(match2),i=0;i=0)for (_clr(t),sp=q=0=i;pnext)if (tj=e-to=0;j=p)match2j=k=tj,p=match1k,match1k=j;return ret;4。2 二分图最大匹配(hungary 邻接阵) /二分图最大匹配,hungary 算法,邻接阵形式,复杂度 O(m*m*n)/返回最大匹配数,传入二分图大小 m,n 和邻接阵 mat,非零元素表示有边/match1,mat

3、ch2 返回一个最大匹配 ,未匹配顶点 match 值为-1#include #define MAXN 310#define _clr(x) memset(x,0xff,sizeof(int)*MAXN)int hungary(int m,int n,int matMAXN,int* match1,int* match2)int sMAXN,tMAXN,p,q,ret=0,i,j,k;for (_clr(match1),_clr(match2),i=0;i=0)for (_clr(t),sp=q=0=i;p=0;j=p)match2j=k=tj,p=match1k,match1k=j;retu

4、rn ret;4。3 二分图最大匹配(hungary 正向表)/二分图最大匹配,hungary 算法,正向表形式,复杂度 O(m*e)/返回最大匹配数,传入二分图大小 m,n 和正向表 list,buf(只需一边)/match1,match2 返回一个最大匹配 ,未匹配顶点 match 值为-1#include #define MAXN 310#define _clr(x) memset(x,0xff,sizeof(int)*MAXN)int hungary(int m,int n,int* list,int* buf,int* match1,int* match2)int sMAXN,tMA

5、XN,p,q,ret=0,i,j,k,l;for (_clr(match1),_clr(match2),i=0;i=0)for (_clr(t),sp=q=0=i;p=0;j=p)match2j=k=tj,p=match1k,match1k=j;return ret;4。4 二分图最佳匹配(kuhn_munkras 邻接阵)/二分图最佳匹配,kuhn munkras 算法,邻接阵形式,复杂度 O(m*m*n)/返回最佳匹配值,传入二分图大小 m,n 和邻接阵 mat,表示权值/match1,match2 返回一个最佳匹配 ,未匹配顶点 match 值为-1/一定注意 m#define MAXN

6、 310#define inf 1000000000#define _clr(x) memset(x,0xff,sizeof(int)*n)int kuhn_munkras(int m,int n,int matMAXN,int* match1,int* match2)int sMAXN,tMAXN,l1MAXN,l2MAXN,p,q,ret=0,i,j,k;for (i=0;il1i?matij:l1i;for (i=0;i=0;j=p)match2j=k=tj,p=match1k,match1k=j;if (match1inext)if (!vt=e-to)if (matcht=2;)if

7、 (matchi=0);return j/2;4。6 一般图匹配(邻接阵)/一般图最大匹配,邻接阵形式,复杂度 O(n3)/返回匹配顶点对数,match 返回匹配,未匹配顶点 match 值为 -1/传入图的顶点数 n 和邻接阵 mat#define MAXN 100int aug(int n,int matMAXN,int* match,int* v,int now)int i,ret=0;vnow=1;for (i=0;i=2;)if (matchi=0);return j/2;4。7 一般图匹配(正向表)/一般图最大匹配,正向表形式,复杂度 O(n*e)/返回匹配顶点对数,match 返回匹配,未匹配顶点 match 值为 -1/传入图的顶点数 n 和正向表 list,buf#define MAXN 100int aug(int n,int* list,int* buf,int* match,int* v,int now)int i,t,ret=0;vnow=1;for (i=listnow;i=2;)if (matchi=0);return j/2;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报