[HihoCoder]#1122 : 二分图二•二分图最大匹配之匈牙利算法
来源:互联网 发布:海岛奇兵升级数据2017 编辑:程序博客网 时间:2024/05/20 19:16
华电北风吹
天津大学认知计算与应用重点实验室
2016-07-02
题目链接:
http://hihocoder.com/problemset/problem/1122?sid=812977
题目分析:
link数组用来保存匹配边,每次dfs找到增广路径的时候(返回1),更新匹配边(双向连接)。然后对所有的节点查看一遍是否存在增广路径即可。除此之外,也可以用邻接表来避免遍历寻找边。
#include <stdio.h>#include <string.h>#define MAXLENGTH 1001using namespace std;int N, M;int map[MAXLENGTH][MAXLENGTH];int link[MAXLENGTH];bool visited[MAXLENGTH];int dfs(int dd){ for (int i = 1; i <= N; i++) { if (visited[i] == false && map[dd][i] == 1) { visited[i] = true; if (link[i] == -1 || dfs(link[i])) { link[i] = dd; link[dd] = i; return 1; } } } return 0;}int main(){ scanf("%d %d", &N, &M); int i, j; int u, v; memset(map, 0, sizeof(map)); memset(link, -1, sizeof(link)); for (i = 0; i<M; i++) { scanf("%d %d", &u, &v); map[u][v] = 1; map[v][u] = 1; } int count = 0; for (i = 1; i <= N; i++) { if (link[i] == -1) { memset(visited, false, sizeof(visited)); count += dfs(i); } } printf("%d\n", count); return 0;}
1 0
- hihoCoder 1122 二分图二•二分图最大匹配之匈牙利算法
- hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法
- hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法
- [HihoCoder]#1122 : 二分图二•二分图最大匹配之匈牙利算法
- hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法
- hihocoder 1122 : 二分图二•二分图最大匹配之匈牙利算法
- hihoCoder - 1122 - 二分图最大匹配之匈牙利算法
- #1122 : 二分图二•二分图最大匹配之匈牙利算法
- HIHO #1122 : 二分图二•二分图最大匹配之匈牙利算法
- 二分图匹配 匈牙利算法 hihocoder 1122
- hihocoder 1122最大二分匹配匈牙利算法
- 二分图最大匹配之匈牙利算法
- 二分图之最大匹配匈牙利算法
- 二分图二•二分图最大匹配之匈牙利算法
- 二分图二•二分图最大匹配之匈牙利算法
- hiho 34 二分图二•二分图最大匹配之匈牙利算法
- hihocoder1122 二分图二•二分图最大匹配之匈牙利算法
- 二分图最大匹配算法-匈牙利算法
- springMVC_后台自动接受map数据
- UVA-1585(Periodic Strings)
- 变长数组解析(转)
- UVA 1585
- 机器学习(线性回归&梯度下降)
- [HihoCoder]#1122 : 二分图二•二分图最大匹配之匈牙利算法
- Poj3984 迷宫问题
- Android使用VideoView播放live555服务端的RTSP视频流demo
- 1.linux kernel 学习
- 前端知识点试题记录
- Java数据结构和算法——二叉查找树
- android-----ArrayAdapter、SimpleAdapter和BaseAdapter
- 联通数据业务
- 网页设计之响应式布局