博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分图匹配模板
阅读量:6787 次
发布时间:2019-06-26

本文共 945 字,大约阅读时间需要 3 分钟。

#include
using namespace std;int edge[1005][1005];int match_x[1005];int match_y[1005];int book[1005];int n,m,e;int dfs(int u){ for(int i=1;i<=m;i++) { if(book[i]==0&&edge[u][i]==1)//有边且没有访问过 { book[i]=1; if(match_y[i]==0||dfs(match_y[i]))//y没有匹配或者y的男友找到了增广路 { match_x[u]=i; match_y[i]=u;//此模板要分开标记配对,因为男女编号相同 return true; } } } return false;}int main(){ ios::sync_with_stdio(false); cin>>n>>m>>e; for(int i=1;i<=e;i++) { int a,b; cin>>a>>b; if(a>=1&&b>=1&&a<=n&&b<=m)//卡掉奇怪的数据 { edge[a][b]=1;//只需要从男友开始找增广路 //edge[b][a]=1; } } int ans=0; for(int i=1;i<=n;i++) { memset(book,0,sizeof(book));//清空访问过的标记 if(dfs(i)) ans++; } cout<
<

 

转载于:https://www.cnblogs.com/KyleDeng/p/9844797.html

你可能感兴趣的文章
桥牌感悟 1
查看>>
化了妆的祝福 1
查看>>
Chromium Graphics: Video Playback and Compositor
查看>>
父子节点数据统计
查看>>
【HDOJ】3127 WHUgirls
查看>>
Netty 启动过程源码分析 (本文超长慎读)(基于4.1.23)
查看>>
表单中时间格式化
查看>>
求1——10^x-1各个位置的和
查看>>
git:将本地分支与远端分支关联起来
查看>>
$in的方法总结
查看>>
MySQL数据库语法-多表查询练习一
查看>>
hdu 1950 最长上升子序列 动态规划
查看>>
php入门第七天
查看>>
.properties文件和.yml文件互转
查看>>
C语言基本语法
查看>>
HTML5 Video开放式标签根据不同浏览器播放不同格式---只需备好MP4及Ogv二种影音格式就可以了...
查看>>
poj 3481 Double Queue
查看>>
食物链 2001年NOI全国竞赛
查看>>
python高级之操作数据库
查看>>
Python 10.2
查看>>