题意:某个人通讯录有很多人,现在他想把这个人分组,给的数据是可以把这个人分在那些组里面,现在他想知道分组后,人最多的那个组至少有多少人。
分析:因为没有给组限制有多少人,可以使用二分求出来最小的那个,感觉还是挺暴力的.....不过时间确实很少 500多ms
********************************************************************
#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(二分图多重匹配)的更多相关文章

  1. Jamie's Contact Groups POJ - 2289(多重匹配 最大值最小化 最大流)

    Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 8567   Accepted: ...

  2. POJ2289:Jamie's Contact Groups(二分+二分图多重匹配)

    Jamie's Contact Groups Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/ ...

  3. 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 ...

  4. POJ 2289(多重匹配+二分)

    POJ 2289(多重匹配+二分) 把n个人,分到m个组中.题目给出每一个人可以被分到的那些组.要求分配完毕后,最大的那一个组的人数最小. 用二分查找来枚举. #include<iostream ...

  5. poj-2289.jamies contact groups(二分答案 + 二分多重匹配)

    Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 9227   Accepted: ...

  6. poj 2289 Jamie's Contact Groups【二分+最大流】【二分图多重匹配问题】

    题目链接:http://poj.org/problem?id=2289 Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K ...

  7. Poj 2289 Jamie's Contact Groups (二分+二分图多重匹配)

    题目链接: Poj 2289 Jamie's Contact Groups 题目描述: 给出n个人的名单和每个人可以被分到的组,问将n个人分到m个组内,并且人数最多的组人数要尽量少,问人数最多的组有多 ...

  8. POJ 2289 Jamie's Contact Groups 二分图多重匹配 难度:1

    Jamie's Contact Groups Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 6511   Accepted: ...

  9. POJ 2289——Jamie's Contact Groups——————【多重匹配、二分枚举匹配次数】

    Jamie's Contact Groups Time Limit:7000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I ...

随机推荐

  1. Android开发系列(一)Activity与Fragment获取屏幕获取屏幕像素的不同方式

    Activity中常用的获取屏幕像素代码: //获取屏幕像素相关信息 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getD ...

  2. Windows上帝模式

    在桌面新建一个文件夹 按F2重命名为 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} 完成

  3. 关于Core Data的一些整理(三)

    关于Core Data的一些整理(三) 关于Core Data Stack的四种类与它们的关系如下: NSManagedObjectModel NSPersistentStore NSPersiste ...

  4. 【转】从头到尾彻底理解KMP

    很好,讲得很清晰,值得学习. 作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个月从早到晚不断改进. 1. 引言 本KMP原文最初写于2年多前的 ...

  5. Taxi Cab Scheme POJ && HDU

    Online Judge Problem Set Authors Online Contests User Web Board Home Page F.A.Qs Statistical Charts ...

  6. 8个不可不知的Mac OS X专用命令行工具(转)

    OS X的终端下通用很多Unix的工具和脚本.如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别. 但是OS X也提供了很多其他系统所没有的特别的命令行工具.我们推荐8个 ...

  7. PHP搜索Solr文档(含高亮)

    <?php $options = array ( 'hostname' => 'localhost', 'port' => '8080', 'path' => 'solr/he ...

  8. Linux 0.11下信号量的实现和应用

    Linux 011下信号量的实现和应用 生产者-消费者问题 实现信号量 信号量的代码实现 关于sem_wait和sem_post sem_wait和sem_post函数的代码实现 信号量的完整代码 实 ...

  9. 路由器to路由器

    本文主要介绍一个主路由器连接两个子路由器的方法: 主路由器: 设置主路由器的开始ip地址为192.168.1.100,结束ip地址为192.168.150: 子路由器A: 第一步:LAN设置 第二步: ...

  10. jQuery 知识积累

    1.select下拉框设置选中项 //设置下拉框第一项为选中项$("#selectId option:first").prop("selected", 'sel ...