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 ...
随机推荐
- U10vim程序编辑器
vim需要多加练习. 1.你可以将vim视为vi的高级版本.vi分成三种模式:一般模式,编辑模式和命令行模式. 一般模式:以vi打开一个文件就直接进入一般模式了(这也是默认的模式).在这个模式中,你可 ...
- 微端 代码project as air 分享
分享 ^_^ 1. 使用 air , as . 2. 微端下载和更新技术 成功上线棋牌游戏.它可用于传统的游戏开发. 地址: http://download.csdn.net/detail/stone ...
- visual studio 2013常用快捷键 VS2013快捷键大全
visual studio 2013常用快捷键 VS2013快捷键大全 Visual Studio 2013 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具 ...
- ssh 实体关系分析确立(ER图-实体关系图)
比較简单的方式就是依据模仿同类产品,依据同类产品的进行模仿,表单就是一个起码要加的字段,然后依据项目须要额外添加字段. 注意:实体类之间的引用关系还须要考虑性能的影响.如:单向或是双向. 表设计: 设 ...
- windows phone 页面传值(7)
原文:windows phone 页面传值(7) 在windows phone 中微软为我们提供了页面间传递参数的解决方案,下面就为大家介绍使用方法,页面传值的案例中我们建立两个页面,一个是MainP ...
- Andriod开发之浏览器开发(WebView)
1.创建一个WebView在XML文件 <WebView android:id="@+id/webView" android:layout_width="match ...
- HTML5 CSS3 诱人的实例 : 网页载入进度条的实现,下载进度条等
今天给大家带来一个比較炫的进度条,进度条在一耗时操作上给用户一个比較好的体验,不会让用户认为在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务 ...
- 1、Cocos2dx 3.0游戏开发三找一小块前言
尊重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27094663 前言 Cocos2d-x 是一个通用 ...
- Cocos2d-x项目总结中的一些遇到的问题
这几天在用Cocos2D-X尝试着做一个小游戏,当然不是创新,仅仅是单纯的模仿,就是为了将自己这段时间学到的技术应用于实践中. 在这个过程中.遇到了一些问题,在此特做一些总结,以免以后遇到类似的问题. ...
- java.io.FileNotFoundException: /home/hadoop/hadoop/dfs/namenode/current/VERSION (Permission denied)
今天布置hadoop集群,尝试单独将secondarynamenode分属到一台独立的虚拟机上, 当格式化后,start-dfs.sh.namenode没启动.查看日志.报错例如以下 查看权限才发现, ...