过山车

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14306    Accepted Submission(s): 6319

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
Author
PrincessSnow
Source
RPG专场练习赛
Recommend
lcy   |   We have carefully selected several similar problems for you:  1068 1083 2444 1281 1150 
最大独立集 = 顶点数 - 最小点覆盖数(最大匹配数)。
匈牙利算法:http://blog.csdn.net/wellerzhao/article/details/7756956
http://ycool.com/post/cfnym64 求最小点覆盖数。
http://www.renfei.org/blog/bipartite-matching.html //二分匹配详解。
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 using namespace std;
 5 int map[1010][1010];  //邻接矩阵存储关系;
 6 int dis[1010];        //记录已匹配点的编号。
 7 int vis[1010];         //标记数组;
 8 int n, v;
 9 bool Search(int a)
10 {
11     for(int i = 1; i <= v; i++)
12     {
13         if(map[a][i] && !vis[i])  //i与a相邻且未被标记;
14         {
15             vis[i] = 1;
16             if(dis[i] == 0 || Search(dis[i])) //i未出现在前一个匹配中 || i出现在前一个匹配中但从与i相邻的节点可能会有增广路;
17             {
18                 dis[i] = a;
19                 return true;
20             }
21         }
22     }
23     return false;
24 }
25 int main()
26 {
27     int m;
28     while(~scanf("%d", &m), m)
29     {
30         memset(map, 0, sizeof(map));
31         memset(dis, 0, sizeof(dis));
32         scanf("%d %d", &n, &v);
33         for(int i = 1; i <= m; i++)
34         {
35             int a, b;
36             scanf("%d %d", &a, &b);
37             map[a][b] = 1;
38         }
39         int cnt = 0;
40         for(int i = 1; i <= n; i++)
41         {
42             memset(vis, 0, sizeof(vis));
43             if(Search(i))
44                 cnt++;
45         }
46         printf("%d\n", cnt);
47     }
48     return 0;
49 } 

转载于:https://www.cnblogs.com/soTired/p/4743308.html

杭电2063--过山车(二分匹配)相关推荐

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

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

  2. 过山车java_杭电oj_2063——过山车(java实现)

    packagehduoj;importjava.util.Scanner;///**//* 使用贪心策略://* 优先选择期望partner最少的//*///正解是使用匈牙利算法--最佳指配 publ ...

  3. hdu 2063 过山车(模板)

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

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

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

  5. HDUOJ 2063 过山车

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

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

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

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

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

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

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

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

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

最新文章

  1. 浅谈WPF的VisualBrush
  2. mysql数据库代码_【代码总结】MYSQL数据库的常见操作
  3. 漫谈SCA(软件成分分析)测试技术:原理、工具与准确性
  4. linux 忽略大小写的查找
  5. C#:生成哈希字符串
  6. Windows 下 Composer 与 Laravel 4 的安装
  7. 从css3书写顺序引出来的border-radius参数
  8. Cityengine, 3ds MAX, FME
  9. NodeJS 数组超出部分以弹出框显示。
  10. SharePoint Online 自定义Modern UI表单
  11. WSGI、flup、fastcgi、web.py的关系
  12. yolo算法部分简单理解
  13. 【手把手带你Godot游戏开发】Godot界面介绍
  14. sobel边缘检测java_Sobel边缘检测
  15. 海思OSD开发系列(一) SDL_TTF框架移植
  16. 零基础学习编程大概需要多久?
  17. 软银没有中国,孙正义失去一切
  18. window VNC Viewer设置屏幕分配率
  19. Premiere Pro cc 2019 全面使用教程(非常简单)
  20. value too long for type character varying(32)

热门文章

  1. 实验室培养的迷你大脑,产生了脑电波...
  2. 李彦宏/王坚/王传福等上榜“中国工程院2019院士增选候选人”引争议,实至名归吗?...
  3. 硬核!如何全面系统地自学 Java ?(必看)
  4. 赔偿 525 万?联想前副总裁跳槽小米仲裁案后续,常程不服提起诉讼
  5. 新手关于import/export的理解
  6. python pip
  7. render函数高级组件jsx基本使用
  8. WPF使用X:Static做多语言支持
  9. JSP Tomcat8.0运行连接池时发生异常【AbstractMethodError oracle.jdbc.driver.T4CConnection.isValid(I)Z】...
  10. 基础拾遗(1):字符(串)数字互转