HDUOJ 2063 过山车
HDUOJ 2063 过山车
Problem Description
RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner。考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿嘿,就站在下面看着吧。聪明的Acmer,你可以帮忙算算最多有多少对组合可以坐上过山车吗?
Input
输入数据的第一行是三个整数K , M , N,分别表示可能的组合数目,女生的人数,男生的人数。0<K<=1000
1<=N 和M<=500.接下来的K行,每行有两个数,分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入。
Output
对于每组数据,输出一个整数,表示可以坐上过山车的最多组合数。
Sample Input
6 3 3
1 1
1 2
1 3
2 1
2 3
3 1
0
Sample Output
3
本道题用了匈牙利算法的思想,这篇博文做了不错的解释
匈牙利算法不错的解释
#include<stdio.h>
#include<string.h>
int line[510][510],boy[510],used[510];
int n,m;
int Find(int x)
{int i,j;for(i=1;i<=m;i++)//遍历所有被选者{if(line[x][i]==1&&used[i]==0){//如果 x对i有好感且在这一个递归选取阶段没有被选取(哪怕是暂时选取,新的递归可能会换)used[i]=1;//标记被选取if(boy[i]==0||Find(boy[i]))//如果被选者没有归属或他的归属着可以调换(他的归属者可以选择其它被选者){boy[i]=x;//将归属定为 xreturn 1;}}}return 0;
}
int main()
{int i,j,k,x,y,sum;while(scanf("%d %d %d",&k,&n,&m),k!=0){memset(line,0,sizeof(line));memset(boy,0,sizeof(boy));memset(used,0,sizeof(used));for(i=0;i<k;i++){scanf("%d %d",&x,&y);line[x][y]=1;//表示 x希望与 y有关系}sum=0;//记录能撮合的情侣对数for(i=1;i<=n;i++){memset(used,0,sizeof(used));//每次都要清 0if(Find(i)) sum++;//找到一对就记录}printf("%d\n",sum);}return 0;
}
HDUOJ 2063 过山车相关推荐
- hdu 2063 过山车(模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Me ...
- [HDU - 2063] 过山车(二分图)
Link:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Me ...
- HDU 2063 过山车 二分图匹配 匈牙利算法
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 2063 过山车【二分图最大匹配】
Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...
- 过山车java,杭电 acm 2063 ( 过山车 )
Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...
- HDU 2063 过山车 (二分图匹配之匈牙利算法)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 杭电oj 2063 过山车(匈牙利算法)
前言: 匈牙利算法主要是解决二分图最大匹配问题,它用一句话总结就是"先到先得,能让就让" 这里是很板子裸匈牙利算法的一题,当然,比赛的题就没这么裸了,需要我们仔细观察.同裸的一题还 ...
- HDU - 2063 过山车(二分图最大匹配)
题目链接:点击查看 题目大意:中文题目,不多赘述 题目分析:二分图最大匹配问题,匈牙利经典算法模板题,感觉这个博客写的很好,插个眼: https://article.itxueyuan.com/Aea ...
- HDU 2063:过山车(匈牙利算法模板题)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
最新文章
- [转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
- 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)
- 虚拟仪器软件LabView使用初步了解
- java迪杰斯特拉算法介绍_178-迪杰斯特拉(Dijkstra)算法基本介绍
- 树的合并 connect
- 【渝粤教育】国家开放大学2018年春季 0702-22T当代中国政治制度 参考试题
- Javascript模块化编程(二)AMD规范(规范使用模块)
- 项目背景怎么描述_项目工作总结报告怎么写?搞定通用规范模型先
- 解决办法:开机后过很长时间键盘才能用
- 光流 速度_科学家研制新型“时空波包”激光束 能够以相同速度穿越不同的介质...
- Python 视频教程下载 (全阶段)
- 树莓派添加RTC时钟模块的方法
- AlphaGo算法论文 神经网络加树搜索击败李世石
- Unity - 撸一个简单版本的 四叉树 + 视锥cascaded,用于场景剔除
- 网络上的计算机找不到打印机,网络打印机找不到,详细教您网络打印机找不到怎么办...
- 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
- 应聘时计算机水平怎么说,计算机能力怎么填_计算机水平怎么写_简历
- 云服务器修复漏洞用重启吗,漏洞修复后要重启吗
- IoT黑板报0209:工信部明确增加物联网网号
- 绿色碳点溶液|碳量子点激发波长:365nm发射波长:525nm