POJ 1274 The Perfect Stall ( 匈牙利算法 )
2010-10-04 11:06
441 查看
比较水的二分图匹配,用模板就能过。这是我的第一个二分图匹配题目,经过了几天的理论与算法过程钻研之后,我感觉他并不像曾经听到他名字时候那么难,今天突然想上手试一试,敲完后1Y,十分激动。
理解二分图匹配有一篇比较好的博文:(AekdyCoin大牛的空间)
http://hi.baidu.com/aekdycoin/blog/item/4f410a8c17e1181bb31bba80.html/cmtid/e2f7b0eba5f1b6ddd539c9f6#e2f7b0eba5f1b6ddd539c9f6
理解二分图匹配有一篇比较好的博文:(AekdyCoin大牛的空间)
http://hi.baidu.com/aekdycoin/blog/item/4f410a8c17e1181bb31bba80.html/cmtid/e2f7b0eba5f1b6ddd539c9f6#e2f7b0eba5f1b6ddd539c9f6
#include<stdio.h> #include<string.h> #include<stdlib.h> int n,m,nstall; int g[201][201]; int xm[201],ym[201],chk[201]; int searchpath(int u) { int v; for( v = 1; v <= m; v++ ) if( g[u][v] && !chk[v] ) { chk[v] = 1; if( ym[v] == -1 || searchpath(ym[v])) { ym[v] = u; xm[u] = v; return 1; } } return 0; } int maxpath(void) { int u,ret = 0; memset(xm,-1,sizeof(xm)); memset(ym,-1,sizeof(ym)); for( u = 1; u <= n; u ++ ) if( xm[u] == -1 ) { memset(chk,0,sizeof(chk)); if( searchpath(u) ) ret++; } return ret ++; } int main(void) { int i,j,t; while( scanf("%d%d",&n,&m) != EOF ) { memset(g,0,sizeof(g)); for( i = 1; i <= n; i++ ) { scanf("%d",&nstall); for( j = 1; j <= nstall; j++ ) { scanf("%d",&t); g[i][t] = 1; } } printf("%d/n",maxpath()); } return 0; }
相关文章推荐
- POJ 1274 The Perfect Stall(匈牙利算法模板)
- POJ1274:The Perfect Stall(二分图最大匹配 匈牙利算法)
- 【poj 1274 】The Perfect Stall (二分图匹配,匈牙利算法)
- POJ 1274 The Perfect Stall (二分图最大匹配入门题,匈牙利算法)
- POJ 1274 The Perfect Stall (匈牙利算法模板)
- POJ 1274 The Perfect Stall(二分图匹配/匈牙利算法)
- POJ 1274 The Perfect Stall (匈牙利算法)
- Poj-1274-The Perfect Stall-匈牙利算法
- [算法] poj 1274 The Perfect Stall (匈牙利)
- poj 1274 The Perfect Stall(匈牙利算法)
- [算法] poj 1274 The Perfect Stall (匈牙利)
- poj 1274 The Perfect Stall(匈牙利算法模板)
- Poj-1274-The Perfect Stall-匈牙利算法
- poj 1274 The Perfect Stall【匈牙利算法模板题】
- POJ1274 The Perfect Stall [二分图最大匹配 匈牙利算法]
- POJ1274:The Perfect Stall(二分图最大匹配 匈牙利算法)
- poj1274——The Perfect Stall(匈牙利算法)
- poj--1274--The Perfect Stall(匈牙利裸题)
- poj--1274--The Perfect Stall(匈牙利裸题)
- POJ_P1274 The Perfect Stall(二分图匹配+匈牙利算法)