博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj —— 1274 The Perfect Stall
阅读量:6867 次
发布时间:2019-06-26

本文共 2951 字,大约阅读时间需要 9 分钟。

                          The Perfect Stall
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 26274   Accepted: 11672

Description

Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering problems, all the stalls in the new barn are different. For the first week, Farmer John randomly assigned cows to stalls, but it quickly became clear that any given cow was only willing to produce milk in certain stalls. For the last week, Farmer John has been collecting data on which cows are willing to produce milk in which stalls. A stall may be only assigned to one cow, and, of course, a cow may be only assigned to one stall. 
Given the preferences of the cows, compute the maximum number of milk-producing assignments of cows to stalls that is possible. 

Input

The input includes several cases. For each case, the first line contains two integers, N (0 <= N <= 200) and M (0 <= M <= 200). N is the number of cows that Farmer John has and M is the number of stalls in the new barn. Each of the following N lines corresponds to a single cow. The first integer (Si) on the line is the number of stalls that the cow is willing to produce milk in (0 <= Si <= M). The subsequent Si integers on that line are the stalls in which that cow is willing to produce milk. The stall numbers will be integers in the range (1..M), and no stall will be listed twice for a given cow.

Output

For each case, output a single line with a single integer, the maximum number of milk-producing stall assignments that can be made.

Sample Input

5 52 2 53 2 3 42 1 53 1 2 51 2

Sample Output

4

Source

题目描述:农夫约翰刚刚在上周完成了他的新谷仓,配备了所有最新的挤奶技术。 不幸的是,由于工程问题,新谷仓中的所有摊位都不一样。 第一周,农夫约翰随机分配奶牛到摊位,但很快就明白,任何给定的牛只愿意在某些摊位生产牛奶。 最近一周,农民约翰一直收集有关哪些奶牛愿意生产牛奶的数据。 摊位可能只能分配给一只母牛,当然,一只母牛可能只能被分配到一个摊位。考虑到奶牛的偏好,计算可能的奶牛产奶量的最大数量。
 
二分图的最大匹配
代码;
#include
#include
#include
#include
#include
#define N 505using namespace std;bool vis[N];int n,m,k,x,ans,girl[N],map[N][N];int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0'; ch=getchar();} return x*f;}int find(int x){ for(int i=1;i<=m;i++) { if(!vis[i]&&map[x][i]) { vis[i]=true; if(girl[i]==-1||find(girl[i])){girl[i]=x; return 1;} } } return 0;}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { ans=0; memset(map,0,sizeof(map)); memset(girl,-1,sizeof(girl)); for(int i=1;i<=n;i++) { k=read(); while(k--) x=read(),map[i][x]=1; } for(int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(find(i)) ans++; } printf("%d\n",ans); } return 0;}

 

 

转载于:https://www.cnblogs.com/z360/p/7429778.html

你可能感兴趣的文章
chmod修改文件权限失败
查看>>
数据结构与算法-->互为素数
查看>>
Linux系统学习方法——写给小白
查看>>
Nginx服务器报500 Internal Server Error错误
查看>>
链表的游标实现
查看>>
记一次在spring环境中 使用模板模式
查看>>
Edraw Max(亿图图示)新手福音:教你思维导图的简单画法!
查看>>
go读取超大文件内容并发写入到redis的功能
查看>>
SylixOS调试方法详解——综合案例分析
查看>>
MySQL数据库中的Date,DateTime,TimeStamp和Time类型
查看>>
位运算实现输出数字的二进制
查看>>
Springboot应用缓存实践之:Ehcache加持
查看>>
026-mysql常用命令
查看>>
【上云须知】全面了解阿里云能为你做什么
查看>>
CSS+DIV之流式布局
查看>>
为Flutter应用程序添加交互性
查看>>
记一次svn忽略新增文件的问题
查看>>
maven常见错误总结
查看>>
面试专题资料(数据结构与算法、通讯协议)
查看>>
find命令用法
查看>>