M - Jamie's Contact Groups - poj 2289(二分图多重匹配)
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std; const int MAXN = ;
const int MAXM = ; bool G[MAXN][MAXM], used[MAXM];
int M, N;
struct Link
{///标记与y相连的边
int len, link[MAXN];
}Ly[MAXN]; bool Find(int i, int Mid)
{
for(int j=; j<M; j++)
{
if(G[i][j] && !used[j])
{
used[j] = true; if( Ly[j].len < Mid )
{
Ly[j].link[ Ly[j].len++ ] = i;
return true;
}
for( int k=; k<Ly[j].len; k++ )
{
if( Find( Ly[j].link[k], Mid ) == true )
{
Ly[j].link[k] = i;
return true;
}
}
}
} return false;
}
bool XYL(int Mid)
{///匈牙利的缩写....
memset(Ly, false, sizeof(Ly)); for(int i=; i<N; i++)
{
memset(used, false, sizeof(used));
if( Find(i, Mid) == false )
return false;
} return true;
} int main()
{
while(scanf("%d%d", &N, &M)!= EOF && M+N)
{
int i, v;
char ch, s[]; memset(G, false, sizeof(G));///记得初始化 for(i=; i<N; i++)
{
scanf("%s", s);
while(scanf("%d%c", &v, &ch))
{
G[i][v] = true;
if( ch == '\n' )
break;///不能输入的时候终止
}
} int L = , R = N, ans=N; while(L <= R)
{
int Mid = (L+R)>>; if( XYL(Mid) == true )
{
ans = Mid;
R = Mid - ;
}
else
L = Mid + ;
} printf("%d\n", ans);
} return ; }
M - Jamie's Contact Groups - poj 2289(二分图多重匹配)的更多相关文章
- Jamie's Contact Groups POJ - 2289(多重匹配 最大值最小化 最大流)
Jamie's Contact Groups Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 8567 Accepted: ...
- POJ2289:Jamie's Contact Groups(二分+二分图多重匹配)
Jamie's Contact Groups Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/ ...
- POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups / HDU 1699 Jamie's Contact Groups / SCU 1996 Jamie's Contact Groups (二分,二分图匹配)
POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups ...
- POJ 2289(多重匹配+二分)
POJ 2289(多重匹配+二分) 把n个人,分到m个组中.题目给出每一个人可以被分到的那些组.要求分配完毕后,最大的那一个组的人数最小. 用二分查找来枚举. #include<iostream ...
- poj-2289.jamies contact groups(二分答案 + 二分多重匹配)
Jamie's Contact Groups Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 9227 Accepted: ...
- poj 2289 Jamie's Contact Groups【二分+最大流】【二分图多重匹配问题】
题目链接:http://poj.org/problem?id=2289 Jamie's Contact Groups Time Limit: 7000MS Memory Limit: 65536K ...
- Poj 2289 Jamie's Contact Groups (二分+二分图多重匹配)
题目链接: Poj 2289 Jamie's Contact Groups 题目描述: 给出n个人的名单和每个人可以被分到的组,问将n个人分到m个组内,并且人数最多的组人数要尽量少,问人数最多的组有多 ...
- POJ 2289 Jamie's Contact Groups 二分图多重匹配 难度:1
Jamie's Contact Groups Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 6511 Accepted: ...
- POJ 2289——Jamie's Contact Groups——————【多重匹配、二分枚举匹配次数】
Jamie's Contact Groups Time Limit:7000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I ...
随机推荐
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- 简单Word操作
//创建空白Word文档 private void button1_Click(object sender, EventArgs e) { object missing = Missing.Value ...
- Linux 查看文件内容的命令
转载自:新浪博客 (观看档案内容 : cat, tac, more, less, head, tail, nl, 刚刚我们提到的都只是在于显示档案的外观,或者是移动与复制一个档案或目录而已,那么如果我 ...
- javascript 16/1/14随记
1.想在一个事件或者函数之后,触发某个事件. var flag=false //定义一个全局变量 function aku(){ if(flag){ } } sizemousedown=functio ...
- 插入数据显示 Duplicate entry '4913' for key 'user_id'
提示信息翻译:插入4913 使索引重复 分析:索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性.否则就会产生这个错误. 一般发生在对数据库写操 ...
- 给AVS添加描述(how to add a description to a video)
UPDATE you might need edit few files. 1. add the input field to the tpl file: /templates/frontend/yo ...
- C语言对数组取地址
#include <stdio.h> main() { ] = {,,,,}; printf("a=%p\n" , a); printf("a=%p\n&qu ...
- UVA - 11346 Probability (概率)
Description Probability Time Limit: 1 sec Memory Limit: 16MB Consider rectangular coordinate system ...
- 转:Hprose for php(一)——快速入门
文章来自于:http://blog.csdn.net/half1/article/details/21095665 本文参考了Hprose官方的用户手册,Hprose官网:http://www.hpr ...