2289 Jamie's Contact Groups //二分+二分图多重匹配
来源:互联网 发布:Windows 良心软件 编辑:程序博客网 时间:2024/04/29 08:24
Description
Input
Output
Sample Input
3 2John 0 1Rose 1Mary 15 4ACM 1 2 3ICPC 0 1Asian 0 2 3Regional 1 2ShangHai 0 20 0
Sample Output
22
Source
没什么好说的,就是二分+多重匹配
一Y,不错
#include<cstdio>
#include<cstring>
int n,m;
bool mat[1001][501],used[501];
int link[1001][501];
int mid;
bool can(int t)
{
for(int i=1;i<=m;i++)
{
if(!used[i]&&mat[t][i])
{
used[i]=1;
if(link[i][0]<mid)
{
link[i][++link[i][0]]=t;
return true;
}
else
{
for(int j=1;j<=link[i][0];j++)
if(can(link[i][j]))
{
link[i][j]=t;
return true;
}
}
}
}
return false;
}
bool check()
{
for(int i=0;i<=m;i++) link[i][0]=0;
for(int i=1;i<=n;i++)
{
memset(used,false,sizeof(used));
if(!can(i)) return false;
}
return true;
}
int find()
{
int low=1,high=n;
int ans=high;
while(low<high)
{
mid=(low+high)>>1;
if(check())
{
if(mid<ans) ans=mid;
high=mid;
}
else low=mid+1;
}
return ans;
}
int main()
{
char str[20];
int x;
char c;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
memset(mat,false,sizeof(mat));
for(int i=1;i<=n;i++)
{
scanf("%s",str);
while(scanf("%d%c",&x,&c))
{
mat[i][x+1]=true;
if(c=='/n') break;
}
}
printf("%d/n",find());
}
return 0;
}
- 2289 Jamie's Contact Groups //二分+二分图多重匹配
- poj 2289 Jamie's Contact Groups 二分图多重匹配
- Poj-2289 Jamie's Contact Groups 多重二分图匹配
- POJ 2289 Jamie's Contact Groups 二分图多重匹配
- poj 2289 Jamie's Contact Groups (二分图多重匹配)
- poj 2289 Jamie's Contact Groups 二分图多重匹配
- POJ 2289Jamie's Contact Groups 二分图多重匹配
- POJ2289 Jamie's Contact Groups(二分图多重匹配+二分)
- POJ 2289 Jamie’s Contact Groups-二分匹配&多重匹配
- POJ 2289 Jamie's Contact Groups 多重匹配+二分
- poj 2289 Jamie's Contact Groups(二分+多重匹配)
- Poj 2289 Jamie's Contact Groups【二分+多重匹配】
- POJ2289 Jamie's Contact Groups 二分图多重匹配
- POJ2289-Jamie's Contact Groups(二分图多重匹配)
- POJ2289 Jamie's Contact Groups(二分图多重匹配)
- Jamie's Contact Groups (二分图多重匹配)
- POJ 2289 Jamie's Contact Groups (二分答案+二分图的多重匹配)
- POJ 2289 - Jamie's Contact Groups 二分+二分图的多重匹配
- 随笔(二进制字符串中1的个数)
- SQL分区表(一)
- 新来者
- MySQL的备份还原
- AxWindowsMediaPlayer how to make the Tracker disappear when playing
- 2289 Jamie's Contact Groups //二分+二分图多重匹配
- Linux日期相关命令
- Linux为命令创建别名
- Linux系统启动时自动启动指定程序
- 用C写面向对象
- Linux下如何添加防火墙规则
- 多功能密码防盗编辑框VC++
- 基于单片机和USB接口的数据采集系统设计
- C/C++ 通用 Makefile