http://acm.hdu.edu.cn/showproblem.php?pid=2063

过山车

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

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>
#include <math.h>
#include <stdlib.h>
#define N 1010
#define INF 0x3f3f3f3f int G[N][N], used[N], vis[N], n; bool Find(int u)
{
int i;
for(i = ; i <= n ; i++)
{
if(!vis[i] && G[u][i])
{//vis[i]表示i男生还没有被别的女生选走
vis[i] = ;
if(!used[i] || Find(used[i]))
{//如果女生used[i]没有选男生i作伴或者女生used[i]选了男生i,她放弃男生i并且另外找到了自己的伴
used[i] = u;//就让男生i与女生u作伴
return true;
}
}
}
return false;
}//该函数判断女生爱能不能找到伴 int main()
{
int k, m, i, a, b, ans;
while(scanf("%d", &k), k)
{
ans = ;
memset(G, , sizeof(G));
scanf("%d%d", &m, &n);
while(k--)
{
scanf("%d%d", &a, &b);
G[a][b] = ;//G[a][b]表示女生a愿意与男生b作伴
}//used[i]表示i男生与used[i]女生作伴
memset(used, , sizeof(used));
for(i = ; i <= m ; i++)
{
memset(vis, , sizeof(vis));
if(Find(i))
ans++;
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. Linux 下dns的搭建
  2. ios相同版本升级
  3. Cenots7编译Opencv3.1错误:下载ippicv,解决方案
  4. web 模板 类似京东左侧的导航栏
  5. Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法
  6. RMAN备份与恢复之参数文件与控制文件
  7. Dapper多表查询(列名重复,类字段重复)映射方案
  8. java中的Switch case语句
  9. Android中Java反射技术的使用示例
  10. 条件与(&amp;&amp;)和逻辑与(&amp;)以及条件或(||)和逻辑或(|)区别
  11. JVM垃圾回收日志结构分析
  12. android滑动删除的多种实现方式(一)
  13. Dos.ORM Select查询 自定义列
  14. this的四种绑定形式
  15. 模板语言变量,js变量,js自执行函数之前嵌套调用
  16. Nashorn——在JDK 8中融合Java与JavaScript之力
  17. Ajax 的优势和不足
  18. ZooInspector 连接不到 Zookeeper 的解决方法
  19. iowait 过高问题的查找及解决linux
  20. javascript正则表达式中 (?=exp)、(?&lt;=exp)、(?!exp)

热门文章

  1. Msys 编译 VS2013 ffmpeg
  2. 对github中项目进行更新
  3. hdu 1575 Tr A (矩阵快速幂入门题)
  4. Python3 学习第一弹:基本数据类型
  5. Java Web编程的主要组件技术——JSP
  6. java web 学习六(servlet开发2)
  7. HTTP协议中的长连接和短连接(keep-alive状态)
  8. Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
  9. delphi 设置表格样式。
  10. Jacoco远程统计代码覆盖率