HDU 2063 过山车【二分图最大匹配】
1<=N 和M<=500.接下来的K行,每行有两个数,分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入。
1 1
1 2
1 3
2 1
2 3
3 1
0
#include<stdio.h>#include<string.h>#define clr(x)memset(x,0,sizeof(x))bool g[505][505];bool v[505];int l[505];int n,m;int find(int k){int i;for(i=1;i<=m;i++) {if(g[k][i]&&!v[i]) { v[i]=1; /* 男生 k 与女生 i 配对(i 未与别的男生配对); * 女生 i 与别的男生(l[i])配对了, * 但从与女生 i 配对的男生开始找, 可以找到另外一个可以匹配的 */if(l[i]==0||find(l[i])) { l[i]=k;return 1; } } }return 0;}int main(){int i,k,p,q,tot;while(scanf("%d",&k),k) { scanf("%d%d",&n,&m); clr(g); clr(l);for(i=0;i<k;i++) { scanf("%d%d",&p,&q); g[p][q]=1; } tot=0;for(i=1;i<=n;i++) //每个男的找女友 { clr(v);if(find(i)) tot++; } printf("%d\n",tot); }return 0;}
#include<stdio.h>#include<string.h>#define N 1010struct node{int v;int next;}e[N*N];int k,m,n,h[N];int f[N];int s[N];int find(int x){int i,y;for(i=h[x];i>=0;i=e[i].next) { y=e[i].v;if(!s[y]) { s[y]=1;if(!f[y]||find(f[y])) { f[y]=x;return 1; } } }return 0;}int main(){int i,j,k,r;while(scanf("%d",&k),k) { scanf("%d%d",&m,&n);for(i=1;i<=m;i++) h[i]=-1;for(i=1;i<=n;i++) f[i]=0; r=k=0;while(k--) { scanf("%d%d",&i,&j); e[k].v=j; e[k].next=h[i]; h[i]=k++; }for(i=1;i<=m;i++) { memset(s,0,sizeof(s));if(find(i)) r++; } printf("%d\n",r); }return 0;}
转载于:https://www.cnblogs.com/dream-wind/archive/2012/03/15/2397197.html
HDU 2063 过山车【二分图最大匹配】相关推荐
- HDU - 2063 过山车(二分图最大匹配)
题目链接:点击查看 题目大意:中文题目,不多赘述 题目分析:二分图最大匹配问题,匈牙利经典算法模板题,感觉这个博客写的很好,插个眼: https://article.itxueyuan.com/Aea ...
- HDU 2063 过山车 二分图匹配 匈牙利算法
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- [HDU - 2063] 过山车(二分图)
Link:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Me ...
- hdu 2063 过山车(模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063 过山车 Time Limit: 1000/1000 MS (Java/Others) Me ...
- HDU 2063 过山车 (二分图匹配之匈牙利算法)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDUOJ 2063 过山车
HDUOJ 2063 过山车 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规 ...
- 过山车java,杭电 acm 2063 ( 过山车 )
Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...
- 杭电oj 2063 过山车(匈牙利算法)
前言: 匈牙利算法主要是解决二分图最大匹配问题,它用一句话总结就是"先到先得,能让就让" 这里是很板子裸匈牙利算法的一题,当然,比赛的题就没这么裸了,需要我们仔细观察.同裸的一题还 ...
- HDU - 1528 Card Game Cheater(二分图最大匹配)
题目链接:点击查看 题目大意:题意有点像求田忌赛马的最优解,大概意思就是现在有两个人,每个人都有n张不同的扑克牌,扑克牌的大小首先以点数来确定,点数相同的情况下以花色来决定,红桃(Heart)> ...
最新文章
- 建立你的第一个 Git 仓库
- 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图
- Java笔记-JNI中简单的参数与返回值处理
- vim emmet插件
- android.mk 冒号,android学习-ndk-build(androidstudio编译cocos2d-x库的cpp为so文件的解释)
- github和git的简单使用
- IPv6邻居状态与邻居检测机制
- DBN原理及实践-TensorFlow
- 跃迁 成为高手的技术
- 认识web,web的标准构成和基本元素
- 群晖如何建php网站_群晖建博客详细教程
- python stacktrace_pystack--python stack trace--让python打印线程栈信息
- 一天接收了131份前端面试简历......(面试总结)
- sql server关系代数练习--进阶
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 Scores
- Nginx报错Mixed Content: The page was loaded over HTTPS, This content should also be served over https
- 交互与前端13 Tabulator 表格实践
- 控制儿童在什么时段使用计算机,win10系统设置控制孩子用电脑的时间的图文步骤...
- 如何在 Illustrator 中应用任意形状渐变?
- word2vec和word embedding有什么区别?