【HDU 2063】过山车(二分图匹配)
n个女生,m个男生。如果女生i愿意让男生j作为parner,那就建边i->j+n,和j+n->i。然后用匈牙利算法算出最大匹配。
要注意N和M都要开2倍。
#include <cstdio>
#include <cstring>
const int N=<<;
const int M=<<;
struct edge{
int to,next;
}e[M];
int head[N],tot;
void add(int u,int v){
e[tot].to=v;e[tot].next=head[u];head[u]=tot++;
}
void init(){
tot=;
memset(head,-,sizeof head);
}
int n,vis[N],link[N];
int find(int u)
{
for(int i=head[u];~i;i=e[i].next){
int v=e[i].to;
if(!vis[v]){
vis[v]=;
if(!link[v]||find(link[v])){
link[v]=u;
return ;
}
}
}
return ;
}
int solve(){
memset(link,,sizeof link);
int ans=;
for(int i=;i<=n;i++){
memset(vis,,sizeof vis);
if(find(i))ans++;
}
return ans;
}
int main(){
int k,m,u,v;
while(scanf("%d",&k),k){
init();
scanf("%d%d",&n,&m);
for(int i=;i<=k;i++){
scanf("%d%d",&u,&v);
add(u,v+n);
add(v+n,u);
}
printf("%d\n",solve());
}
}
【HDU 2063】过山车(二分图匹配)的更多相关文章
- hdu 2063 过山车 二分匹配(匈牙利算法)
简单题hdu2063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Ot ...
- HDU 2063 过山车 二分匹配
解题报告:有m个女生和n个男生要结成伴坐过山车,每个女生都有几个自己想选择的男生,然后要你确定最多能组成多少对组合. 最裸的一个二分匹配,这是我第一次写二分匹配,给我最大的感受就是看那些人讲的匈牙利算 ...
- hdu 2063 过山车 (二分图,最大匹配)
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- HDU 2063 过山车(二分匹配入门)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配最大匹配数简单题,匈牙利算法.学习二分匹配传送门:http://blog.csdn.ne ...
- [HDU] 2063 过山车(二分图最大匹配)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 女生为X集合,男生为Y集合,求二分图最大匹配数即可. #include<cstdio> ...
- HDU 2063 过山车 二分图题解
一个男女搭配的关系图,看能够凑成多少对,基本和最原始的一个二分图谜题一样了,就是 一个岛上能够凑成多少对夫妻的问题. 所以是典型的二分图问题. 使用匈牙利算法,写成两个函数,就很清晰了. 本程序还带分 ...
- hdu 2063 过山车(匈牙利算法模板)
http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Memory ...
- hdu 2063 过山车(模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Me ...
- HDU 2063 过山车 第一道最大二分匹配
http://acm.hdu.edu.cn/showproblem.php?pid=2063 题目大意: m个女生和n个男生一起做过山车,每一排必须一男一女,而每个女孩愿意和一些男生坐一起,, 你要找 ...
- HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同 ...
随机推荐
- 转:windows下命令行工具
转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...
- Nginx/Apache服务连接数梳理
统计连接数,使用netstat命令或ss命令都可以1)统计连接数(80端口)[root@wang ~]# netstat -nat|grep -i "80"|wc -l872 或者 ...
- ES6 .Set数据结构去除重复元素
用法一 var set = new Set([1, 2, 3, 4, 2, 8, 4]); //两个2 for (var elem of set) { console.log(elem) // 输出结 ...
- windows下安装memcache的基本步骤
本文主要解决的是window下memcached的安装的问题,在使用的过程中经常会被第一步环境的配置搞混,本文结合我的配置过程和遇到的问题,做一个总结 1,开启php memcache的扩展,在文件 ...
- mac:在当前文件夹打开terminal终端
System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New T ...
- Eclipse设置和必装插件
文章长期更新,主要是记录Eclipse好用的插件和规范的设置 插件篇: 1. StartExplorer. 在Eclipse内定位项目目录,和打开项目目录下的命令行,总是非常麻烦.有了这个插件以后,这 ...
- MyBatis拦截器原理探究
MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能.那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis 允 ...
- win7下IIS配置以及域名映射方法
win7下IIS配置以及域名映射方法 第一步:打开控制面板,选择程序与功能,如下图: 第二步:双击打开程序与功能面板,如下图: 第三步:打开”打开或关闭windows功能”(红线圈起来的地方),如下图 ...
- Android Studio代码混淆插件
之前给公司的App添加代码混淆,在代码的混淆过程也遇到了不少的问题,再加上最近学习了一下Android Studio插件的开发,所以就开发一个代码混淆插件方便项目的代码混淆. 截图 第三方库列表清单 ...
- 遍历Arraylist的方法:
遍历Arraylist的几种方法: Iterator it1 = list.iterator(); while(it1.hasNext()){ System.out ...