POJ3041 二分图最小点覆盖(匈牙利算法)
2017-08-22 21:04
344 查看
#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn=600; bool line[maxn][maxn],used[maxn]; int target[maxn],c,r,n,m,all; bool found(int x) { int i,j; for(j=1;j<=c;j++) { if(line[x][j]==true&&used[j]==false) { used[j]=true; if(target[j]==0||found(target[j])) { target[j]=x; return true; } } } return false; } int main() { while(scanf("%d%d",&c,&r)!=EOF) { memset(line,false,sizeof(line)); memset(target,0,sizeof(target)); all=0; for(int i=1;i<=r;i++) { scanf("%d%d",&n,&m); line [m]=true; } for(int i=1;i<=c;i++) { memset(used,false,sizeof(used)); if(found(i)) {all+=1;} } printf("%d\n",all); } return 0; }///直接将x y看成两个结点。二分图:最大匹配数=最小定点覆盖
相关文章推荐
- poj3041 最小点覆盖==二分图最大匹配 匈牙利算法求解最大匹配问题(运用DFS)
- POJ 1325 Machine Schedule (二分图最小点集覆盖 匈牙利算法)
- UVALive 6811 Irrigation Lines (二分图最小点覆盖--匈牙利算法)
- poj3041 最小点覆盖即最大匹配(匈牙利算法)(模板)
- POJ3041 最小点覆盖 最大匹配数 回顾匈牙利算法
- POJ-1947-Asteroids-求最小点覆盖数(二分图-匈牙利算法)
- hdu1151(二分图+最小路径覆盖数+匈牙利算法)
- POJ3041 二分图(性质)最小点覆盖等于最大匹配数(匈牙利模板题)
- POJ-1325-Machine Schedule-最小点覆盖(二分图-匈牙利算法)
- 彻底搞定二分图的匈牙利算法,最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖
- HDU 1150 Machine Schedule(匈牙利算法 二分图的最小顶点覆盖 二分图最大匹配)
- hdu2119(二分图+最小点覆盖+匈牙利算法)
- POJ3041《Asteroids》方法:匈牙利算法(最小点覆盖数==最大二分匹配数)
- HDOJ---1151 Air Raid[匈牙利算法:最小路径覆盖数=原图顶点数–二分图最大匹配数]
- POJ 1422 Air Raid (二分图最小点集覆盖 匈牙利算法)
- [POJ3041] Asteroids(最小点覆盖-匈牙利算法)
- 二分图系列•二分图判定•匈牙利算法二分图的最大匹配•二分图最小点覆盖及最大独立集
- hdu1054(二分图+最小点覆盖数+匈牙利算法)
- 【POJ 3041 】Asteroids (匈牙利算法最小点覆盖&二分图)
- poj3041_匈牙利算法_二分图最小覆盖点(最大匹配数)