二分图最大匹配的非递归方法
2017-09-20 12:52
232 查看
二分图最大匹配的非递归方法
int mat[SIZE][SIZE]; /图矩阵/
int match1[SIZE];
int match2[SIZE];
int queue[SIZE];
int head,tail;
int pre[SIZE];
int maxMatch(int N){
int ret = 0;
memset(match1,-1,sizeof(match1));
memset(match2,-1,sizeof(match2));
}
int mat[SIZE][SIZE]; /图矩阵/
int match1[SIZE];
int match2[SIZE];
int queue[SIZE];
int head,tail;
int pre[SIZE];
int maxMatch(int N){
int ret = 0;
memset(match1,-1,sizeof(match1));
memset(match2,-1,sizeof(match2));
for(int i=0;i<N;i++){ memset(pre,-1,sizeof(pre)); head = tail = 0; queue[tail++] = i; while(head < tail && match1[i]==-1){ int u = queue[head++]; for(int j =0;j<N&&match1[i]==-1;j++) if(mat[u][j] && pre[j]==-1){ queue[tail++] = match2[j]; pre[j]=u; if(queue[tail-1]<0){ for(int t=j,k=0;t>=0;j=t){ match2[j]=k=pre[j]; t=match1[k]; match1[k]=j; } } } } }
}
相关文章推荐
- 【算法小总结】二分图最大匹配的非递归方法
- 二分图最大匹配,最小路径覆盖,最小点覆盖,最大独立集,最小边覆盖与建图方法
- HDOJ 2819 - Swap 二分图最大匹配..并输出方法..
- 二分图最大匹配及常用建图方法
- HDU 2444.The Accomodation of Students【二分图判断+最大匹配】【5月4】
- 二分图最大匹配-匈牙利算法
- 求解二分图的最大匹配的匈牙利算法---POJ 1325 Machine Schedule
- hdu 1150 二分图最大匹配最小点覆盖
- 二分图的最大匹配(匈牙利算法)
- poj 2594 二分图最大匹配最小路径覆盖
- 二分图最大匹配 - 匈牙利算法
- Hrbust-1492 盒子(二分图最大匹配)
- 详解二分图的最大匹配
- 二分图最大匹配总结
- 证明二分图最大匹配=二分图最小点集覆盖
- POJ3041——Asteroids(二分图最大匹配)
- POJ 3216 Repairing Company(Floyd + 二分图最大匹配)
- NYOJ239 月老的难题 【二分图最大匹配·匈牙利】
- 二分图最大匹配--poj2536
- poj 2195 带权重的二分图最大匹配问题