首页 > 代码库 > The Perfect Stall
The Perfect Stall
poj1274:http://poj.org/problem?id=1274
题意:有n个奶牛和m个谷仓,现在每个奶牛有自己喜欢去的谷仓,并且它们只会去自己喜欢的谷仓吃东西,问最多有多少奶牛能够吃到东西
题解:裸的二分图匹配,直接上匈牙利。
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 const int MAXN=1002; 7 int n,m,k,w,u,v; 8 int cy[MAXN]; 9 bool visit[MAXN];10 bool g[MAXN][MAXN];11 int path(int u){12 for(int i=1;i<=m;i++){13 if(!visit[i]&&g[u][i]){14 visit[i]=1;15 if(cy[i]==-1||path(cy[i])){16 cy[i]=u;17 return 1;18 }19 }20 }21 return 0;22 }23 int maxmatch(){24 memset(cy,-1,sizeof(cy));25 int res=0;26 for(int i=1;i<=n;i++){27 memset(visit,0,sizeof(visit));28 res+=path(i);29 }30 return res;31 }32 int main(){33 while(~scanf("%d%d",&n,&m)&&n){34 memset(g,0,sizeof(g));35 for(int i=1;i<=n;i++){36 scanf("%d",&k);37 while(k--){38 scanf("%d",&w);39 g[i][w]=1;40 }41 42 }43 printf("%d\n",maxmatch());44 }45 }
The Perfect Stall
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。