HDU2063 过山车 【二分图·最大匹配】

来源:互联网 发布:建模 软件 数据 开源 编辑:程序博客网 时间:2024/04/30 14:21

过山车

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


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 31 11 21 32 12 33 10
 

Sample Output
3
 

Author
PrincessSnow
 

Source
RPG专场练习赛
 

匈牙利模板题。

#include <stdio.h>#include <string.h>#define maxn 510#define maxm 1010int k, m, n;int B[maxn];bool vis[maxn];int head[maxn], id;struct Node {int v, next;} E[maxm];void addEdge(int u, int v) {E[id].v = v; E[id].next = head[u];head[u] = id++;}void getMap() {int u, v; id = 0;memset(head, -1, sizeof(int) * (m + 1));while(k--) {scanf("%d%d", &u, &v);addEdge(u, v);}}int findPath(int k) {int i, v;for(i = head[k]; i != -1; i = E[i].next) {if(!vis[v=E[i].v]) {vis[v] = 1;if(B[v] == -1 || findPath(B[v])) {B[v] = k; return 1;}}}return 0;}int MaxMatch() {memset(B, -1, sizeof(int) * (n + 1));int i, ans = 0;for(i = 1; i <= m; ++i) {memset(vis, 0, sizeof(vis));ans += findPath(i);}return ans;}void solve() {printf("%d\n", MaxMatch());}int main() {// freopen("stdin.txt", "r", stdin);while(scanf("%d%d%d", &k, &m, &n) == 3) {getMap();solve();}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电大本科统考考不过怎么办 一案涉及两个法律关系怎么办 法院调解书被告不执行怎么办 电视cas授权已过期怎么办 网贷逾期被仲裁怎么办 word所选内容无效怎么办 wps批注不显示了怎么办 船舶挂靠船务公司去要怎么办 被螃蟹扎了肿了怎么办 手指被海鲜刺了怎么办 被海鲜刺进去了怎么办 手被海鲜扎了怎么办 环评设备写错了怎么办 物业对高空抛物怎么办 如果法官不公平判案我该怎么办? 民事案夸省审理案件不公平怎么办 积目头像未通过审核怎么办 电压不稳空调带不动怎么办 孩子吃了塑料珠怎么办 美的电压力锅打不开盖子怎么办 瓶盖打不开怎么办 瓶子是玻璃的 杯子口关错位了怎么办 大玻璃瓶的玻璃瓶盖拧不开怎么办 按压式洗发水瓶盖打不开怎么办 向下按压的瓶盖打不开怎么办 玻璃罐头开过了打不开怎么办 玻璃瓶的塑料盖子打不开怎么办 泡酒玻璃瓶盖子打不开怎么办 罐头的塑料瓶盖打不开怎么办 塑料水杯盖紧了怎么办 拧不开矿泉水瓶盖怎么办 新暖壶盖吸住了怎么办 暖瓶盖被吸住了怎么办 做面包和面粘手怎么办 面包面和稀了怎么办 鱼缸氧气泵声音大怎么办 中班安全遇到火灾怎么办反思 汤洒了怎么办活动反思 下水道被塑料盖堵了怎么办 卫生间地漏盖子掉到下水道怎么办 洗手池下水道翻盖打不开了怎么办