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 过山车相关推荐

  1. hdu 2063 过山车(模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  2. [HDU - 2063] 过山车(二分图)

    Link:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  3. HDU 2063 过山车 二分图匹配 匈牙利算法

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  4. HDU 2063 过山车【二分图最大匹配】

    Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...

  5. 过山车java,杭电 acm 2063 ( 过山车 )

    Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...

  6. HDU 2063 过山车 (二分图匹配之匈牙利算法)

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  7. 杭电oj 2063 过山车(匈牙利算法)

    前言: 匈牙利算法主要是解决二分图最大匹配问题,它用一句话总结就是"先到先得,能让就让" 这里是很板子裸匈牙利算法的一题,当然,比赛的题就没这么裸了,需要我们仔细观察.同裸的一题还 ...

  8. HDU - 2063 过山车(二分图最大匹配)

    题目链接:点击查看 题目大意:中文题目,不多赘述 题目分析:二分图最大匹配问题,匈牙利经典算法模板题,感觉这个博客写的很好,插个眼: https://article.itxueyuan.com/Aea ...

  9. HDU 2063:过山车(匈牙利算法模板题)

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

最新文章

  1. [转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
  2. 页面置换算法(FIFO , LRU, OPT)(C++实现模拟)
  3. 虚拟仪器软件LabView使用初步了解
  4. java迪杰斯特拉算法介绍_178-迪杰斯特拉(Dijkstra)算法基本介绍
  5. 树的合并 connect
  6. 【渝粤教育】国家开放大学2018年春季 0702-22T当代中国政治制度 参考试题
  7. Javascript模块化编程(二)AMD规范(规范使用模块)
  8. 项目背景怎么描述_项目工作总结报告怎么写?搞定通用规范模型先
  9. 解决办法:开机后过很长时间键盘才能用
  10. 光流 速度_科学家研制新型“时空波包”激光束 能够以相同速度穿越不同的介质...
  11. Python 视频教程下载 (全阶段)
  12. 树莓派添加RTC时钟模块的方法
  13. AlphaGo算法论文 神经网络加树搜索击败李世石
  14. Unity - 撸一个简单版本的 四叉树 + 视锥cascaded,用于场景剔除
  15. 网络上的计算机找不到打印机,网络打印机找不到,详细教您网络打印机找不到怎么办...
  16. 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
  17. 应聘时计算机水平怎么说,计算机能力怎么填_计算机水平怎么写_简历
  18. 云服务器修复漏洞用重启吗,漏洞修复后要重启吗
  19. IoT黑板报0209:工信部明确增加物联网网号
  20. 绿色碳点溶液|碳量子点激发波长:365nm发射波长:525nm

热门文章

  1. 汽车使用总结(十)--自动挡各个档位
  2. 常用锁原理的介绍(上)
  3. sift匹配描述子距离判断选择更好的匹配点
  4. 关于JS的逻辑运算题之if的使用
  5. 写简单code犯的弱智问题1
  6. 如何在双显示器设置中将Dock保持在一个屏幕上以防止其移动
  7. 用手机控制的你的单反——DSLR Controller实测
  8. 数据库PostrageSQL-客户端连接默认值
  9. Chrome插件——油猴脚本的安装与使用
  10. 陕西建行成功示范中标普华Linux应用(转)