hdoj 2063 过山车 【双边匹配匈牙利算法】
过山车
但是,每一个女孩都有各自的想法,举个样例把。Rabbit仅仅愿意和XHD或PQK做partner,Grass仅仅愿意和linle或LL做partner。PrincessSnow愿意和水域浪子或伪酷儿做partner。
考虑到经费问题。boss刘决定仅仅让找到partner的人去坐过山车。其它的人,嘿嘿,就站在以下看着吧。聪明的Acmer,你能够帮忙算算最多有多少对组合能够坐上过山车吗?
1<=N 和M<=500.接下来的K行,每行有两个数。分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入。
6 3 3
1 1
1 2
1 3
2 1
2 3
3 1
0
3
第一道二分匹配题。
。
。
纯属模板。
參考:http://blog.csdn.net/wellerzhao/article/details/7756956
代码1:
#include <stdio.h>
#include <string.h>
#define M 555 int map[M][M];
int mx[M], my[M];
int vis[M];
int n, m; int find(int s){
int i;
for(i = 1; i<= m; i ++){
if(!vis[i]&&map[s][i]){
vis[i] = 1;
if(my[i] == 0||find(my[i])){
my[i] = s;
mx[s] = i;
return 1;
}
}
}
return 0;
} void f(){
for(int i = 1; i <= n; i ++)
printf("%d..%d,,%d..%d\n", i, mx[i], i, my[i]);
}
int main(){
int k;
while(scanf("%d", &k), k){
int i;
memset(map, 0, sizeof(map));
memset(mx, 0, sizeof(mx));
memset(my, 0, sizeof(my));
int a, b;
scanf("%d%d", &n, &m);
for(i = 0; i < k; i ++){
scanf("%d%d", &a, &b);
map[a][b] = 1;
}
int ans = 0;
for(i = 1; i<= n; i ++){
if(!mx[i]){
memset(vis, 0, sizeof(vis));
if(find(i)) ++ans;
}
}
printf("%d\n", ans);
// f();
}
return 0;
}
以下的代码是另外的一种形式,,只是仅仅是多了个数组。
。。
思想还是一样的
代码;
#include <stdio.h>
#include <string.h>
#define M 555 int map[M][M];
int mx[M], my[M];
int vis[M];
int n, m; int find(int s){
int i;
for(i = 1; i<= m; i ++){
if(!vis[i]&&map[s][i]){
vis[i] = 1;
if(my[i] == 0||find(my[i])){
my[i] = s;
mx[s] = i;
return 1;
}
}
}
return 0;
} void f(){
for(int i = 1; i <= n; i ++)
printf("%d..%d,,%d..%d\n", i, mx[i], i, my[i]);
}
int main(){
int k;
while(scanf("%d", &k), k){
int i;
memset(map, 0, sizeof(map));
memset(mx, 0, sizeof(mx));
memset(my, 0, sizeof(my));
int a, b;
scanf("%d%d", &n, &m);
for(i = 0; i < k; i ++){
scanf("%d%d", &a, &b);
map[a][b] = 1;
}
int ans = 0;
for(i = 1; i<= n; i ++){
if(!mx[i]){
memset(vis, 0, sizeof(vis));
if(find(i)) ++ans;
}
}
printf("%d\n", ans);
// f();
}
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
hdoj 2063 过山车 【双边匹配匈牙利算法】的更多相关文章
- hdu 2063 过山车 二分匹配(匈牙利算法)
简单题hdu2063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Ot ...
- hdoj 2063 过山车【匈牙利算法+邻接矩阵or邻接表】
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 2063 过山车 二分匹配
解题报告:有m个女生和n个男生要结成伴坐过山车,每个女生都有几个自己想选择的男生,然后要你确定最多能组成多少对组合. 最裸的一个二分匹配,这是我第一次写二分匹配,给我最大的感受就是看那些人讲的匈牙利算 ...
- HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同 ...
- HDU 2063 过山车(二分匹配入门)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配最大匹配数简单题,匈牙利算法.学习二分匹配传送门:http://blog.csdn.ne ...
- HDOJ 2063 过山车
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 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 5943 Kingdom of Obsession 【二分图匹配 匈牙利算法】 (2016年中国大学生程序设计竞赛(杭州))
Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
随机推荐
- 设计模式学习一:strategyPattern
#ifndef STRATEGYPATTERN_H_#define STRATEGYPATTERN_H_#include<iostream>using namespace std; //策 ...
- malloc一次性最大能申请多大内存空间
受用户态内存地址空间的限制.64 位系统下分配几个 T 不成问题. 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:zz matrix链接:http://www.zhihu. ...
- 也说Javascript对象拷贝及疑问
一.浅拷贝 当我们需要将一个对象拷贝至另一个对象时,我们一般会这么实现 function shadowCopy(source,target){ var target=target||{}; for(v ...
- javamail发送邮件(转)
今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接 ...
- include设置属性在relativelayout布局中无效
转自:http://4265337.blog.163.com/blog/static/195375820127935731114/ 再来说一个在使用这两个标签时最容易出现的问题. 经常会有同学在Rel ...
- 关于git的ssh-key:解决本地多个ssh-key的问题
在设置github的时候,官方的说明文档要求备份当前的id_rsa.然后生成一份新的私钥用于github的登陆.假设真这样做,那么新的私钥是无法再继续登陆之前的机器的. 这样的方法有点暴力- 还好ss ...
- Ansible@一个高效的配置管理工具--Ansible configure management--翻译(八)
如无书面授权,请勿转载 第四章,大型项目中Ansible的使用 Roles If your playbooks start expanding beyond what includes can hel ...
- GUI测试要点
本人测试知识还不完整,所以下面的文字总结自网络上的文章,红色字体为我平时的测试经验,如有雷同之处,还请见谅,仅自己学习之用. 转载请说明来自博客园--邦邦酱好. ------------------- ...
- HDU1194_Beat the Spread!
Beat the Spread! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- How to import the www.googleapis.com SSL CA certification to the jks store file?
Assumed that you have installed JDK and configured JAVA_HOME for your current operation system. (1) ...