首页 > 代码库 > 【二分图】【最大匹配】【匈牙利算法】bzoj1191 [HNOI2006]超级英雄Hero
【二分图】【最大匹配】【匈牙利算法】bzoj1191 [HNOI2006]超级英雄Hero
裸的最大匹配。
1 #include<cstdio> 2 #include<vector> 3 #include<cstring> 4 using namespace std; 5 vector<int>G[2002]; 6 typedef vector<int>::iterator ITER; 7 int n,m,mat[2002],x,y; 8 bool vis[2002]; 9 bool dfs(int U)10 {11 for(ITER it=G[U].begin();it!=G[U].end();it++)12 if(!vis[*it])13 {14 vis[*it]=1;15 if(mat[*it]==-1||dfs(mat[*it]))16 {17 mat[*it]=U;18 return 1;19 }20 }21 return 0;22 }23 int max_match()24 {25 memset(mat,-1,sizeof(mat)); int res=0;26 for(int i=1;i<=n;i++)27 {28 memset(vis,0,sizeof(vis));29 if(dfs(i)) res++;30 else return res;31 } return res;32 }33 int main()34 {35 scanf("%d%d",&m,&n);36 for(int i=1;i<=n;i++)37 {38 scanf("%d%d",&x,&y);39 G[i].push_back(x+1+n);40 G[x+1+n].push_back(i);41 G[i].push_back(y+1+n);42 G[y+1+n].push_back(i);43 } printf("%d\n",max_match());44 return 0;45 }
【二分图】【最大匹配】【匈牙利算法】bzoj1191 [HNOI2006]超级英雄Hero
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。