POJ2584 T-Shirt Gumbo【二分图多重匹配】
题目链接:
id=2584">http://poj.org/problem?id=2584
题目大意:
如今有5种型号(S、M、L、X、T)的衣服要发放给N个參赛队员。给出每一个參赛者所须要衣服型号的范围。
在这个范围内的型号參赛者都能接受。再给出这5种型号衣服各自的数量,那么问题来了:是否存在一种
分配方案使得全部參赛队员都可以拿到自己型号范围内的衣服。
思路:
二分图匹配是一个对一个的匹配,这里是一对多匹配。须要用二分图多重匹配的模型来做。详细就是把原
先匈牙利算法中的cy[MAXN]更换为一个2维数组cy[MAXN][MAXN]。
cy[i][j]表示与元素yi匹配的第j个元
素,同一时候用vey[i]来记录与元素yi匹配的元素的数量。
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int MAXN = 33; int Map[MAXN][MAXN];
bool Mask[MAXN];
int NX,NY,N; int vcy[MAXN];
int cy[MAXN][MAXN]; int limit[MAXN]; bool FindPath(int u)
{
for(int i = 1; i <= 5; ++i)
{
if(Map[u][i] && !Mask[i])
{
Mask[i] = 1;
if(vcy[i] < limit[i])
{
cy[i][vcy[i]++] = u;
return true;
} for(int j = 0; j < limit[i]; ++j)
{
if(FindPath(cy[i][j]))
{
cy[i][j] = u;
return true;
}
}
}
}
return false;
} void MulMatch()
{
int Ans = 0;
memset(vcy,0,sizeof(vcy));
for(int i = 1; i <= N; ++i)
{
memset(Mask,0,sizeof(Mask));
Ans += FindPath(i); }
if(Ans == N)
printf("T-shirts rock!\n");
else
printf("I'd rather not wear a shirt anyway...\n");
} int main()
{
char s[20];
while(~scanf("%s",s))
{
if(strcmp(s,"ENDOFINPUT") == 0)
break;
scanf("%d",&N);
memset(Map,0,sizeof(Map));
for(int i = 1; i <= N; ++i)
{
scanf("%s",s);
char a = s[0];
char b = s[1];
int u,v;
if(a == 'S')
u = 1;
else if(a == 'M')
u = 2;
else if(a == 'L')
u = 3;
else if(a == 'X')
u = 4;
else if(a == 'T')
u = 5; if(b == 'S')
v = 1;
else if(b == 'M')
v = 2;
else if(b == 'L')
v = 3;
else if(b == 'X')
v = 4;
else if(b == 'T')
v = 5;
for(int j = u; j <= v; ++j)
Map[i][j] = 1;
}
for(int i = 1; i <= 5; ++i)
scanf("%d",&limit[i]);
scanf("%s",s);
MulMatch();
} return 0;
}
POJ2584 T-Shirt Gumbo【二分图多重匹配】的更多相关文章
- hihoCoder 1393 网络流三·二分图多重匹配(Dinic求二分图最大多重匹配)
#1393 : 网络流三·二分图多重匹配 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来. 小Hi和小H ...
- 【POJ 1698】Alice's Chance(二分图多重匹配)
http://poj.org/problem?id=1698 电影和日子匹配,电影可以匹配多个日子. 最多有maxw*7个日子. 二分图多重匹配完,检查一下是否每个电影都匹配了要求的日子那么多. #i ...
- 稳定的奶牛分配 && 二分图多重匹配+二分答案
题意: 农夫约翰有N(1<=N<=1000)只奶牛,每只奶牛住在B(1<=B<=20)个奶牛棚中的一个.当然,奶牛棚的容量有限.有些奶牛对它现在住的奶牛棚很满意,有些就不太满意 ...
- hiho 第117周 二分图多重匹配,网络流解决
描述 学校的秋季运动会即将开始,为了决定参赛人员,各个班又开始忙碌起来. 小Hi和小Ho作为班上的班干部,统计分配比赛选手的重任也自然交到了他们手上. 已知小Hi和小Ho所在的班级一共有N名学生(包含 ...
- 【网络流24题】No.7 试题库问题 (最大流,二分图多重匹配)
[题意] 假设一个试题库中有 n 道试题. 每道试题都标明了所属类别. 同一道题可能有多个类别属性.现要从题库中抽取 m 道题组成试卷.并要求试卷包含指定类型的试题. 试设计一个满足要求的组卷算法. ...
- 网络流24题 第五题 - PowerOJ1740 CodeVS1905 圆桌问题 二分图多重匹配 网络最大流
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - PowerOJ1740 - 有SPJ - 推荐 题目传送门 - CodeVS1905 - 无SPJ - 0% ...
- [HihoCoder1393]网络流三·二分图多重匹配
题目大意: 班级有$N$名学生,运动会有$M$项不同的比赛,第$i$项比赛每个班需要派出$m_i$名选手参加,编号为i的学生最多同时参加给定的$b_i$项比赛中的任意$a_i$项比赛.根据统计的结果, ...
- hdu3605 Escape 二分图多重匹配/最大流
2012 If this is the end of the world how to do? I do not know how. But now scientists have found tha ...
- POJ2289 Jamie's Contact Groups(二分图多重匹配)
Jamie's Contact Groups Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 7721 Accepted: ...
随机推荐
- crm高速开发之QueryExpression
/* 创建者:菜刀居士的博客 * 创建日期:2014年07月06号 */ namespace Net.CRM.OrganizationService { using System; ...
- EF的两种延迟加载
EF的两种延迟加载 EF的延迟加载一: 在一次查询以后得到temp,然后在temp上直接进行查询得到temp2,我们调用temp2的时候,是直接为temp生成sql脚本的,没有生成temp的脚本,也就 ...
- Eclipse用法和技巧十:显示代码outline
在一个文件中快速找到某一个方法或者某一个作用域,可以使用 Ctrl+O或者Ctrl+F3,快速显示当前代码的outline,进行快速查找.效果如下: 这里主要是补充一些后续操作,能更加方 ...
- 关于自动刷新CSS
由于最近系统调整大量的css,希望用户在浏览的时候能即时看到css的更改,而不是继续看到的是客户机上的缓存css. 在网络上找了下,发现很多人推荐一个叫cssrefresh的小工具. http://w ...
- Silverlight技术调查(1)——Html向Silverlight传参
原文 Silverlight技术调查(1)——Html向Silverlight传参 近几日项目研究一个很牛的富文档编辑器DXperience RichEdit组件,调查环境为Silverlight4. ...
- 浏览器打开URL的方式和加载过程
不同浏览器的工作方式不完全一样,大体上,浏览器的核心是浏览器引擎,目前市场占有率最高的几种浏览器几乎都使用了不同的浏览器引擎:IE使用的是Trident.Firefox使用的是Gecko.Safari ...
- 性能测试之LoardRunner 自动关联
1.什么是自动关联? 2.实例介绍 以下是详细介绍: 自动化关联:它是VuGen提供的自动化扫描关联处理策略,它的原理是对同一个脚本运行和录制时的服务器返回进行比较,来自动查找变化的部分,并且提示是否 ...
- osgi实战学习之路:5.生命周期及利用命令、装饰者模式实现基于socket交互Bundle命令demo
生命周期中关键3个类: BundleActivator 入口点,类似main方法 BundleContext Bundle上下文对象,在执行期间,为应用程序提供操作osgi框架的方法 Bundle 代 ...
- APNS 那些事!
之前在消息推送中间件APush里实现了对APNS的桥接.并利用业余时间阅读了官方指南Local and Push Notification Programming Guide.蛮有心得的.稍作总结.分 ...
- 使用hadoop ecipse插件须要注意的问题
1.关于run on hadoop的问题: 在未用hadoop eclipse插件前,我以为通过hadoop eclipse 插件不但能够管理hdfs,还能够自己主动打包程序.并帮我自己主动设置Con ...