hdu2063
来源:互联网 发布:电脑软件制作 编辑:程序博客网 时间:2024/06/01 07:19
链接:点击打开链接
题意:输入数据的第一行是三个整数K,M,N分别表示可能的组合数目,女生的人数,男生的人数。0<K<=1000
1<=N和M<=500.接下来的K行,每行有两个数,分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入
代码:
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int k,m,n;int rel[1005][1005],vis[505],girl[505];int hungarian(int x){ //rel代表男女关系,vis代表是否用过,girl代表女生的配哪一个男生 int i,j; for(i=1;i<=m;i++){ if(rel[x][i]&&vis[i]==0){ vis[i]=1; if(!girl[i]||hungarian(girl[i])){ girl[i]=x; return 1; } } } return 0;} //匈牙利算法模板 int main(){ //就是二分图最大匹配 int i,sum,a,b; //推荐看这个博客写的通俗易懂 while(scanf("%d",&k)!=EOF&&k){ //http://blog.csdn.net/dark_scope/article/details/8880547 scanf("%d%d",&m,&n); memset(rel,0,sizeof(rel)); memset(girl,0,sizeof(girl)); for(i=1;i<=k;i++){ scanf("%d%d",&a,&b); rel[b][a]=1; } sum=0; for(i=1;i<=n;i++){ memset(vis,0,sizeof(vis)); if(hungarian(i)) sum++; } printf("%d\n",sum); } return 0;}
0 0
- hdu2063
- hdu2063
- hdu2063
- hdu2063-过山车
- HDU2063 过山车
- hdu2063过山车
- HDU2063-过山车
- HDU2063 过山车
- HDU2063 过山车
- hdu2063 过山车
- HDU2063:过山车
- hdu2063过山车
- hdu2063过山车
- HDU2063 过山车
- 过山车||HDU2063
- HDU2063-过山车
- hdu2063 过山车
- HDU2063过山车(二分匹配)
- MFC分隔字符串的四种方法
- Android通过代码模拟物理、屏幕点击事件
- 黑马程序员-----Java之你不得不知道的排序
- php set_error_handler() 重要用法
- ZOJ 3787 Access System
- hdu2063
- 数据结构—线性结构—线性及其实现
- 显示rust测试时候的print信息
- 韩鱼总结
- poj 1753 Flip Game
- mysql双主半同步的灾备测试结论
- ROM简单制作教程
- VMware虚拟机安装openstack注意事项
- android 自定义view二