首页 > 代码库 > hdu2063 过山车 二分图最大匹配
hdu2063 过山车 二分图最大匹配
男女进行二分图匹配,裸题
1 #include<stdio.h>
2 #include<string.h>
3 int now,head[1001],next[1001],point[1001],visit[1001],match[1001];
4
5 void add(int x,int y){
6 next[++now]=head[x];
7 head[x]=now;
8 point[now]=y;
9 }
10
11 int dfs(int k)
12 {
13 for(int i=head[k];i;i=next[i]) if(!visit[point[i]]){
14 int p=point[i];
15 visit[p]=1;
16 if(match[p]==-1||dfs(match[p])){
17 match[p]=k;
18 return 1;
19 }
20 }
21 return 0;
22 }
23
24 int main(){
25 int K,M,N;
26 while(scanf("%d",&K)!=EOF&&K!=0){
27 scanf("%d%d",&M,&N);
28 memset(match,-1,sizeof(match));
29 memset(head,0,sizeof(head));
30 now=0;
31 int i,ans=0;
32 for(i=1;i<=K;i++){
33 int a,b;
34 scanf("%d%d",&a,&b);
35 add(a,b);
36 }
37 for(i=1;i<=M;i++){
38 memset(visit,0,sizeof(visit));
39 if(dfs(i)==1)ans++;
40 }
41 printf("%d\n",ans);
42 }
43 return 0;
44 }
hdu2063 过山车 二分图最大匹配
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。