过山车

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 9745    Accepted Submission(s): 4294

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
  1. 6 3 3
  2. 1 1
  3. 1 2
  4. 1 3
  5. 2 1
  6. 2 3
  7. 3 1
  8. 0
 
Sample Output
  1. 3

又是一个简单直接的二分匹配问题。

。今天刚刚学。。

也就先找找简单练手。。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<iostream>
  5.  
  6. using namespace std;
  7.  
  8. const int M = 1000 + 5;
  9. int k, m, n;
  10. int link[M];
  11. bool MAP[M][M];
  12. bool cover[M];
  13. int ans;
  14.  
  15. void init()
  16. {
  17. int x, y;
  18. memset(MAP, false, sizeof(MAP));
  19. scanf("%d%d", &m, &n);
  20. for(int i=1; i<=k; i++)
  21. {
  22. scanf("%d%d", &x, &y);
  23. MAP[x][y]=true;
  24. }
  25. }
  26.  
  27. bool dfs(int x)
  28. {
  29. for(int y=1; y<=n; y++)
  30. {
  31. if(MAP[x][y] && !cover[y])
  32. {
  33. cover[y]=true;
  34. if(!link[y] || dfs(link[y]))
  35. {
  36. link[y]=x;
  37. return true;
  38. }
  39. }
  40. }
  41. return false;
  42. }
  43.  
  44. int main()
  45. {
  46. while(scanf("%d", &k) && k)
  47. {
  48. ans=0;
  49. init();
  50. memset(link, false, sizeof(link));
  51. for(int i=1; i<=m; i++)
  52. {
  53. memset(cover, 0, sizeof(cover));
  54. if( dfs(i) )
  55. ans++;
  56. }
  57. printf("%d\n", ans);
  58. }
  59.  
  60. return 0;
  61. }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

HDU 2063:过山车(偶匹配,匈牙利算法)的更多相关文章

  1. hdu 2063 过山车 二分匹配(匈牙利算法)

    简单题hdu2063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Ot ...

  2. HDU 2063 过山车(二分图 && 匈牙利 && 最小点覆盖)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 这是一道很经典的匈牙利问题: 把男同学看成左边点,女同学看成右边点,如果两个同学愿意同 ...

  3. HDU 2063 过山车(二分匹配入门)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 二分匹配最大匹配数简单题,匈牙利算法.学习二分匹配传送门:http://blog.csdn.ne ...

  4. HDU 2063 过山车 二分匹配

    解题报告:有m个女生和n个男生要结成伴坐过山车,每个女生都有几个自己想选择的男生,然后要你确定最多能组成多少对组合. 最裸的一个二分匹配,这是我第一次写二分匹配,给我最大的感受就是看那些人讲的匈牙利算 ...

  5. hdu 2063 过山车(匈牙利算法模板)

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

  6. hdu 2063 过山车(模板)

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

  7. HDU 2063 过山车 第一道最大二分匹配

    http://acm.hdu.edu.cn/showproblem.php?pid=2063 题目大意: m个女生和n个男生一起做过山车,每一排必须一男一女,而每个女孩愿意和一些男生坐一起,, 你要找 ...

  8. HDU 2063 过山车 (匈牙利算法)

    题目链接:HDU 2063 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩 ...

  9. [ACM] HDU 2063 过山车 (二分图,匈牙利算法)

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

  10. hdu 2063 过山车【匈牙利算法】(经典)

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

随机推荐

  1. Windows编程之非模态对话框

    1  创建非模态对话框 <1>  HWNDCreateDialog(  HINSTANCE hInstance,  // handle to module LPCTSTRlpTemplat ...

  2. hdu3804(树链剖分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3804 题意:给定一棵n个结点的树及边权,回答m个询问(x,y)满足以下条件的边权: 1)该边在结点1~ ...

  3. 【JS】依据表格ID进行排序(附凝视)

    分享一个前端做的依据表格ID进行排序的方法哈,贴码例如以下: HTML: <input type="button" id="btn1" value=&qu ...

  4. My Solution: Word Ladder

    public class Solution { public int ladderLength(String start, String end, Set<String> dict) { ...

  5. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件

    原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...

  6. EF 执行视图

    IEnumerable<V_stocks> summary = db.Database.SqlQuery<V_stocks>("SELECT * FROM dbo.V ...

  7. HDU2586 How far away ?(LCA模板题)

    题目链接:传送门 题意: 给定一棵树,求两个点之间的距离. 分析: LCA 的模板题目 ans = dis[u]+dis[v] - 2*dis[lca(u,v)]; 在线算法:详细解说 传送门 代码例 ...

  8. 染色法判断是否是二分图 hdu2444

    用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...

  9. WPF用SkewTransform画3D柱状图

    WPF用SkewTransform画3D柱状图 SkewTransform主要是对控件实现一种2-D扭曲,具体内容可以查看以下链接: http://msdn.microsoft.com/zh-cn/l ...

  10. ExcelHelper Excel,Export,Import

    using System; using System.Collections.Generic; using System.Data; using System.Data.Odbc; using Sys ...