• COGS 886. [USACO 4.2] 完美的牛栏


    ★★☆   输入文件:stall4.in   输出文件:stall4.out   简单对比
    时间限制:1 s   内存限制:128 MB

    USACO/stall4(译by Felicia Crazy)

    描述

    农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术。不幸的是,由于工程问题,每个牛栏都不一样。第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶。上个星期,农夫约翰刚刚收集到了奶牛们的爱好的信息(每头奶牛喜欢在哪些牛栏产奶)。一个牛栏只能容纳一头奶牛,当然,一头奶牛只能在一个牛栏中产奶。

    给出奶牛们的爱好的信息,计算最大分配方案。

    格式

    PROGRAM NAME: stall4

    INPUT FORMAT:

    (file stall4.in)

    第一行 两个整数,N (0 <= N <= 200)和M (0 <= M <= 200)。N是农夫约翰的奶牛数量,M是新牛棚的牛栏数量。
    第二行到第N+1行

    一共N行,每行对应一只奶牛。第一个数字(Si)是这头奶牛愿意在其中产奶的牛栏的数目(0 <= Si<= M)。后面的Si个数表示这些牛栏的编号。牛栏的编号限定在区间(1..M)中,在同一行,一个牛栏不会被列出两次。

    OUTPUT FORMAT:

    (file stall4.out)

     只有一行。输出一个整数,表示最多能分配到的牛栏的数量。

    SAMPLE INPUT (file stall4.in)

    5 5

    2 2 5

    3 2 3 4

    2 1 5

    3 1 2 5

    1 2

    SAMPLE OUTPUT (file stall4.out)

    4

     二分图匹配

    匈牙利算法 

    屠龙宝刀点击就送

    #include <cstring>
    #include <cstdio>
    
    bool used[301];
    
    int Cow_L[301],Answer,Graph[301][301],n,m;
    bool dfs(int x)
    {
        for(int i=1;i<=m;i++)
        {
            if(Graph[x][i]==1&&!used[i])
            {
                used[i]=1;
                if(Cow_L[i]==0||dfs(Cow_L[i]))
                {
                    Cow_L[i]=x;
                    return 1;
                }
            }
        }
        return 0;
    }
    int main()
    {
        freopen("stall4.in","r",stdin);
        freopen("stall4.out","w",stdout);
        scanf("%d%d",&n,&m);
        for(int x,y,i=1;i<=n;i++)
        {
            scanf("%d",&x);
            while(x--)
            {
                scanf("%d",&y);
                Graph[i][y]=1;
            }
        }
        for(int i=1;i<=n;i++)
        {
            memset(used,0,sizeof(used));
            if(dfs(i))
            Answer++;
        }
        printf("%d",Answer);
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    Android git提交代码所需忽略的文件
    python 代码命名规范
    appium-设计思路
    appium-循环执行一条用例,失败时停止执行
    BeautifulReport 遇到的问题 template
    接口自动化
    python-装饰器
    linux-vi编辑器创建和编辑正文文件
    linux-文件的压缩与解压缩
    python学习第一天
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6735854.html
Copyright © 2020-2023  润新知