匈牙利算法
来源:互联网 发布:bamboo mac 手绘 编辑:程序博客网 时间:2024/05/20 18:51
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include<stack>#include<queue>#include<map>#define RG register#define IL inline#define pi acos(-1.0)#define ll long long using namespace std;const int maxn = 210;int n,m,x,y,ans=0;int a[maxn],b[maxn];//a:匹配点连向的被匹配点,b:被匹配点连向的匹配点bool vis[maxn],g[maxn][maxn];bool dfs(int u) { for(int i=1; i<=m; i++) if(g[u][i] && !vis[i]) { vis[i]=1; if(dfs(b[i]) || b[i]==-1) {b[i]=u,a[u]=i;return true; } } return false;}int main() { scanf("%d%d", &n, &m); while(scanf("%d%d", &x, &y)!=EOF) g[x][y]=1; memset(a,-1,sizeof(a)); memset(b,-1,sizeof(b)); for(int i=1; i<=n; i++) { if(a[i]==-1) { memset(vis,0,sizeof(vis));//增广路上的点只能匹配一次 if(dfs(i)) ans++; } } printf("%d", ans); return 0;}
阅读全文
0 0
- 匈牙利算法
- 匈牙利算法!!!
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- 匈牙利算法
- Hadoop常用指令
- node.js使用(四):采集网页
- 十年磨剑服务健康事业
- 动态规划——1087 Super Jumping! Jumping! Jumping!
- windows 安装ninja
- 匈牙利算法
- MyBatis逆向工程的使用
- 寻找数组的第k个最大者
- 20170702
- form表单转json字符串
- servlet
- centos7.2部署tomcat8
- PAT甲级 1029. Median (25)
- hiho一下 第156周 岛屿