hdu2063 过山车 二分图最大匹配 匈牙利算法
来源:互联网 发布:pkpm软件分几种 编辑:程序博客网 时间:2024/05/01 02:29
题解:利用dfs或者bfs不停找到增广路,然后用一个link[]数组记录匹配。如果link[i]没有在原匹配中,就更新匹配并加入其中,当此次增广路完成并更新完匹配,最大匹配值ans加1。
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>#include<cmath>#include<cctype>#include<vector>using namespace std;int v1,v2,ans;int a[1001][1001];int vit[1001];int link[1001];bool dfs(int x){ for(int y=1;y<=v2;y++) { if(a[x][y]&&!vit[y]) { vit[y]=1; if(link[y]==0||dfs(link[y]))//link[y]==0: y不属于前一个匹配M。 { link[y]=x; return true; } } } return false;}void Search(){ for(int i=1;i<=v1;i++) { memset(vit,0,sizeof(vit)); if(dfs(i)) ans++; } return ;}int main(){ int k,m,n; while(cin>>k) { if(k==0) break; cin>>n>>m; v1=n,v2=m; memset(a,0,sizeof(a)); memset(link,0,sizeof(link)); for(int i=1;i<=k;i++) { int x,y; cin>>x>>y; a[x][y]=1; } ans=0; Search(); cout<<ans<<endl; } return 0;}
- hdu2063 过山车 二分图最大匹配 匈牙利算法
- hdu2063 过山车 二分图/最大匹配(匈牙利算法)
- 【HDU2063】过山车(二分图最大匹配,匈牙利算法)
- HDU2063过山车 匈牙利二分图最大匹配
- hdu2063[过山车] 二分图匹配 匈牙利算法
- hdu2063 过山车 (匈牙利算法 二分匹配)
- hdu2063 过山车 二分匹配 匈牙利算法
- HDU2063 过山车(二分图匹配-匈牙利算法模版题)
- hdu2063 过山车 (二分图匹配,匈牙利算法)
- hdu2063过山车(匈牙利算法)二分图匹配
- HDU2063 过山车(二分图最大匹配)
- Hdu2063—过山车 二分图最大匹配
- HDU2063 过山车 【二分图·最大匹配】
- 【二分图最大匹配】【HDU2063】过山车
- 【最大流,二分图匹配】【hdu2063】【过山车】
- hdu2063 过山车(二分图最大匹配基础)
- hdu2063 过山车--最大匹配数 & 匈牙利
- HDU 2063过山车 二分图最大匹配 匈牙利算法
- 【上海】上海七牛云存储招聘
- 日期时间函数之细节
- STL 总体介绍
- 如何调查linux启动慢的原因
- 虚拟文件系统中的数据结构(fs_struct、files_struct)
- hdu2063 过山车 二分图最大匹配 匈牙利算法
- 一起学开车救命宝典:遭遇爆胎怎么办?
- shell 脚本阅读之二——ltp工具下的runltp
- 如何在高并发分布式系统中生成全局唯一Id
- Oracle 11gR2 SCAN 详解
- Global文件(修正篇)
- jquery select 下拉框实用操作
- ext tabpanel显示不全的原因
- xulrunner的困扰