博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[洛谷P3386] [模板] 二分图匹配 (匈牙利算法)
阅读量:4688 次
发布时间:2019-06-09

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

毒瘤出题人zzk出了个二分图匹配的题(18.10.04模拟赛T2),逼我来学二分图匹配。

网络流什么的llx讲完之后有点懵,还是匈牙利比较好理解(绿与被绿)。

对于左边的点一个一个匹配,记录右边哪个点跟左边的i匹配:cp[i]

如果还没有配对,就直接配上。

如果已经有匹配了,每次dfs找增广路(看看能不能换一下),如果成功,那么匹配数增加一。

1 #include
2 #include
3 #include
4 using namespace std; 5 6 int n,m,ec,ans; 7 int e[1005][1005]; 8 int cp[1005]; 9 int used[1005];10 11 int dfs(int p)12 {13 for(int i=1;i<=m;i++)14 {15 if(!used[i]&&e[p][i])16 {17 used[i]=1;18 if(!cp[i]||dfs(cp[i]))19 {20 cp[i]=p;21 return 1;22 }23 }24 }25 return 0;26 }27 28 void hungary()29 {30 ans=0;31 for(int i=1;i<=n;i++)32 {33 memset(used,0,sizeof(used));34 if(dfs(i))ans++;35 }36 }37 38 int main()39 {40 scanf("%d%d%d",&n,&m,&ec);41 for(int i=1;i<=ec;i++)42 {43 int a,b;44 scanf("%d%d",&a,&b);45 e[a][b]=1;46 }47 hungary();48 printf("%d",ans);49 return 0;50 }

 

转载于:https://www.cnblogs.com/eternhope/p/9743239.html

你可能感兴趣的文章
HDU 4288
查看>>
程序的跳转(一行代码)
查看>>
hello world ,详解
查看>>
Update
查看>>
DataGridView ScrollBar End Event
查看>>
C#委托的一次"甜蜜"接触
查看>>
前端开发值得推荐的各种资源
查看>>
MYSQL5.7版本sql_mode=only_full_group_by问题
查看>>
使用JavaScript为一张图片设置备选路径
查看>>
httpclient4.5.2 Post请求支持http和https
查看>>
HDU之旅
查看>>
Sql2005:provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接
查看>>
SQL Server主键自动生成_表and存储过程
查看>>
selenium无法正常运行 Chrome浏览器,cannot find Chrome binary的问题
查看>>
一体机分区误删找到数据的方案
查看>>
excel常用函数
查看>>
网络协议-restful协议
查看>>
JavaScript模块化编程(一)
查看>>
egg文件制作与安装
查看>>
后台测试流程与经验分享
查看>>