首页 > 代码库 > The Hungarian algorithm Template
The Hungarian algorithm Template
The Hungarian algorithm with The adjacency matrix :
计算最大匹配问题
int n1, n2, m, ans;int res[MAXN];bool vis[MAXN], map[MAXN][MAXN];void init(){ int t1, t2; memset(map, 0, sizeof(map)); memset(res, 0, sizeof(res)); ans = 0; scanf("%d%d",&n1,&n2); //get map[][]}bool find(int a) { for (int i = 1; i <= n2; ++i) { if (map[a][i] == 1 && !vis[i]) { vis[i] = true; if (res[i] == 0 || find(res[i])) { res[i] = a; return true; } } } return false;}int main() { init(); for (int i = 1; i <= n1; ++i) { memset(vis, 0, sizeof(vis)); if (find(i)) ++ans; } printf("%d\n",ans); return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。