二分图匹配(Luogu3386)
- 一个看起来舒服的写法:
#include<cstdio>
#include<cstring>
using namespace std;int n,m,edge,head[1005],vis[1005],match[1005],ans,cnt;struct node{int v,next;
}e[1000005];inline void add(int u,int v){e[++cnt].v=v;e[cnt].next=head[u];head[u]=cnt;
}inline bool dfs(int u){for(int i=head[u];i!=-1;i=e[i].next){if(!vis[e[i].v]){vis[e[i].v]=1;if(match[e[i].v]==-1||dfs(match[e[i].v])){match[e[i].v]=u;return 1;}}}return 0;
}int main(){memset(head,-1,sizeof(head));memset(match,-1,sizeof(match));scanf("%d%d%d",&n,&m,&edge);for(int i=1;i<=edge;i++){int u,v;scanf("%d%d",&u,&v);if(u>n||v>m)continue;add(u,v);}for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));ans+=dfs(i);}printf("%d\n",ans);
}
转载于:https://www.cnblogs.com/Y15BeTa/p/11235921.html
二分图匹配(Luogu3386)相关推荐
- Dinic二分图匹配 || Luogu P3386
题面:[模板]二分图匹配 思路:Dinic实现二分图匹配,要建一个超级源点(S)和超级汇点(T),分别定为N+M+1和N+M+2 然后S去和N中的数建正边和反边,正边权值为1,反边权值为0:M中的数去 ...
- 二分图匹配匈牙利算法DFS实现
1 /*==================================================*\ 2 | 二分图匹配(匈牙利算法DFS 实现) 3 | INIT: g[][]邻接矩阵; ...
- poj1274(二分图匹配)
(一道基础的二分图匹配) 题目意思大概为N个牛和M个栅栏,一个牛和一个栅栏只能匹配一次,求最大匹配 直接套用二分图最大匹配模板即可 #include <iostream> #include ...
- poj2724(二分图匹配)
题目大概意思为有部分奶酪需要处理,若两个奶酪的二进制只有一位不同,则可以一起处理,问最少需要处理几次 题目思路: 将可以一起处理的两个奶酪用边连接在一起,相当于边只连接二进制中有偶数个1的奶酪和二进制 ...
- 算法模板——二分图匹配
实现功能为二分图匹配 原理:匈牙利算法,核心思想--匹配上了就配,没直接匹配上也要通过前面的腾出位置让这个匹配上(详见:趣写算法系列之--匈牙利算法) 本程序以Codevs2776为例 详见Codev ...
- 算法:ACM二分图匹配 HDU2063
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 摘录于互联网,原创作者redraiment,很详细的二分图匹配入门资料! 2063 过山车 Pr ...
- BZOJ1433 [ZJOI2009]假期的宿舍 - 二分图匹配
题解 一道裸的二分图匹配,稍微有一点细节需要注意, 但是非常裸= = 本校并且住校的向自己的床和 自己认识的并且本校的人的床连边 离校的不需要向外连边 不是本校的就和自己认识的 并且是本校的人的床连边 ...
- POJ2536 二分图匹配
题意: 有n只老鼠,m个洞,每个洞最多可以藏一只老鼠,每个老鼠的移动速度都是v,给你他们的当前坐标,和洞的坐标,突然老鹰来了,他们必须在s秒内跑到一个洞藏起来,问你最少有多少只老鼠被抓走了. ...
- URAL 1721 Two Sides of the Same Coin(二分图匹配,输出匹配对象)
题意:给出n个人的信息,名字.特征.排名. 在排名相差2的前提下,特征为testdata可以与特征为statements的组队,特征为anything可以任何一人组队: 求最多匹配对数,并将每队名字输 ...
- zoj3988 二分图匹配
给一个数组,对于每两个数加起来为素数那么就是一个集合,求不超过k个集合的最多数是多少 解法:二分图匹配,先打素数筛,预处理边集,匹配完之后分两种情况k>匹配数,那么可以直接输出匹配数*2,否则可 ...
最新文章
- 【转载】Pytorch在加载模型参数时指定设备
- Java类的加载顺序
- QT的QBluetoothServiceDiscoveryAgent类的使用
- 编写一个Zipkin Server
- div覆盖div DIV相互重叠如何解决
- 阿里云自带的mysql_阿里云Centos使用自带mysql
- location.replace与location.href,location.reload的区别
- stm32经典笔试题_嵌入式面试经典30问
- [转]Javascript 中 String.replace( ) 的妙用
- linux php zend load,在Linux系统中为PHP5.3安装Zend Guard Loader
- 群晖NAS设备安装和基础操作详细流程(例:DS920+)
- 【GIS小案例】基于Java + Geotools + wContour的等值面图
- 坐在自己的命运之中——《大先生》鲁迅一生的最后一分钟
- Javascript阻止事件冒泡和浏览器默认行为
- pycharm调试bug Process finished with exit code -1073740791 (0xC0000409)
- 记一次 ClickHouse 性能测试
- pythontkinter图片_Python tkinter实现图片标注功能(完整代码)
- 删除PDF其中几页的方法
- 第二届“大数据在清华”高峰论坛,敬请期待!
- php实现html转word
热门文章
- 【mybatis系列】自定义实现拦截器插件Interceptor
- Veeam创建复制任务Replication Job
- HDU 3662 3D Convex Hull(三维凸包面的个数)
- React 的慢与快:优化 React 应用实战
- Java基础之面向对象的特征。
- openStack Packages yum upgrade
- Uva 10305 - Ordering Tasks
- Moss/Sharepoint:自定义 Oracle Membership
- 查看linux可用磁盘空间_如何在Linux中检查可用磁盘空间
- 2019年python黑马_决心在2019年让Python成为您的朋友