AC餐饮指的是什么_餐饮tc和ac的区别

AC餐饮指的是什么_餐饮tc和ac的区别奶牛们在吃饭方面十分挑剔。每头奶牛都有自己喜欢的食物和饮料,并且不会食用其他不喜欢的食物和饮料。农夫约翰为他的奶牛们做了美味的饭菜,但他忘了对照他们的喜好来检查菜单。虽然他可能无法令所有奶牛满意,但他想给尽可能多的奶牛提供一顿完整的用餐—-既有食物可吃,也有饮料可喝。农夫约翰一共烹制了 F 种食物,并提供了 D 种饮料。约翰共有 N 头奶牛,其中第 i 头奶牛有 Fi 种喜欢的食物以及 Di 种喜欢的饮料。约翰需要给每头奶牛分配一种食物和一种饮料,并使得有吃有喝的奶牛数量尽可能大。每种食物

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

奶牛们在吃饭方面十分挑剔。

每头奶牛都有自己喜欢的食物和饮料,并且不会食用其他不喜欢的食物和饮料。

农夫约翰为他的奶牛们做了美味的饭菜,但他忘了对照他们的喜好来检查菜单。

虽然他可能无法令所有奶牛满意,但他想给尽可能多的奶牛提供一顿完整的用餐—-既有食物可吃,也有饮料可喝。

农夫约翰一共烹制了 F 种食物,并提供了 D 种饮料。

约翰共有 N 头奶牛,其中第 i 头奶牛有 Fi 种喜欢的食物以及 Di 种喜欢的饮料。

约翰需要给每头奶牛分配一种食物和一种饮料,并使得有吃有喝的奶牛数量尽可能大。

每种食物或饮料都只有一份,所以只能分配给一头奶牛食用(即,一旦将第 2 种食物分配给了一头奶牛,就不能再分配给其他奶牛了)。

输入格式
第一行包含三个整数 N,F,D。

接下来 N 行,其中第 i 行描述第 i 头奶牛的饮食喜好,首先包含两个整数 Fi 和 Di,表示其喜欢的食物和饮料数量,然后包含 Fi 个整数表示其喜欢的食物的种类编号,最后包含 Di 个整数表示其喜欢的饮料的种类编号。

食物编号从 1 到 F,饮料编号从 1 到 D。

输出格式
输出一个整数,表示能够有吃有喝的奶牛的最大数量。

数据范围
1≤N,F,D≤100,
1≤Fi≤F,
1≤Di≤D

输入样例:
4 3 3
2 2 1 2 3 1
2 2 2 3 1 2
2 2 1 3 1 2
2 1 1 3 3
输出样例:
3

样例解释
一种使得三头奶牛满意的可行方法是:

奶牛 1:没饭。
奶牛 2:食物 2,饮料 2。
奶牛 3:食物 1,饮料 1。
奶牛 4:食物 3,饮料 3。

题解
当一个点只能被选择一次的时候,可以使用最大流中的拆点思路。

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 410, M = 40610, INF = 1e8;

int n, F, D, S, T;
int h[N], e[M], f[M], ne[M], idx;
int q[N], d[N], cur[N];

void add(int a, int b, int c)
{ 
   
    e[idx] = b, f[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
    e[idx] = a, f[idx] = 0, ne[idx] = h[b], h[b] = idx ++ ;
}

bool bfs()
{ 
   
    int hh = 0, tt = 0;
    memset(d, -1, sizeof d);
    q[0] = S, d[S] = 0, cur[S] = h[S];
    while (hh <= tt)
    { 
   
        int t = q[hh ++ ];
        for (int i = h[t]; ~i; i = ne[i])
        { 
   
            int ver = e[i];
            if (d[ver] == -1 && f[i])
            { 
   
                d[ver] = d[t] + 1;
                cur[ver] = h[ver];
                if (ver == T) return true;
                q[ ++ tt] = ver;
            }
        }
    }
    return false;
}

int find(int u, int limit)
{ 
   
    if (u == T) return limit;
    int flow = 0;
    for (int i = cur[u]; ~i && flow < limit; i = ne[i])
    { 
   
        cur[u] = i;
        int ver = e[i];
        if (d[ver] == d[u] + 1 && f[i])
        { 
   
            int t = find(ver, min(f[i], limit - flow));
            if (!t) d[ver] = -1;
            f[i] -= t, f[i ^ 1] += t, flow += t;
        }
    }
    return flow;
}

int dinic()
{ 
   
    int r = 0, flow;
    while (bfs()) while (flow = find(S, INF)) r += flow;
    return r;
}

int main()
{ 
   
    scanf("%d%d%d", &n, &F, &D);
    S = 0, T = n * 2 + F + D + 1;
    memset(h, -1, sizeof h);
    for (int i = 1; i <= F; i ++ ) add(S, n * 2 + i, 1);
    for (int i = 1; i <= D; i ++ ) add(n * 2 + F + i, T, 1);
    for (int i = 1; i <= n; i ++ )
    { 
   
        add(i, n + i, 1);
        int a, b, t;
        scanf("%d%d", &a, &b);
        while (a -- )
        { 
   
            scanf("%d", &t);
            add(n * 2 + t, i, 1);
        }
        while (b -- )
        { 
   
            scanf("%d", &t);
            add(i + n, n * 2 + F + t, 1);
        }
    }
    printf("%d\n", dinic());
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168572.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 下午3:16
下一篇 2022年8月9日 下午3:16


相关推荐

  • Lodop web打印

    Lodop web打印用到了 web 打印技术 选择了 Lodop 需要引入 LodopFuncs js 和安装 Lodop 打印插件 可以部署到云 CLODOP scriptsrc static js LodopFuncs js type text javascript script varres varstrBodySt varstrFormHt varx script scriptsrc

    2026年3月19日
    2
  • 进销存ERP源码 小程序源码 APP源码

    进销存ERP源码 小程序源码 APP源码进销存ERP源码+小程序源码+APP源码+H5系统简介:常规管理系统配置 附件管理 个人资料 数据库管理分类管理用于统一管理网站的所有分类,分类可进行无限级分类,分类类型请在常规管理->系统配置->字典配置中添加权限管理管理员管理 管理员日志 角色组会员管理会员管理 会员分组 会员规则进销存管理1、商品管理商品分类商品信息商品单位2、库存管理商品存库库存流水盘点单

    2022年5月31日
    88
  • 大疆网上测评题库_大疆笔试题

    大疆网上测评题库_大疆笔试题大疆笔试的体验很好,没有很为难应聘者,还有着自己鲜明的特点,我认为值得一说,特此写笔经记录一下,顺便攒攒RP,第一次笔经就献给大疆啦~笔试网站是大疆自己搭建的(UI设计炒鸡好看!!!),我猜题目也是大疆HR团队自己出的。从这点来看,大疆对人才的把控很严格,必须是自己经手选出来的人。整套笔试题目共有90道题,给了1.5个小时完成,题型包括态度行为题、行业知识题、工作情景题,以及略有升级的行测题。其中…

    2022年6月30日
    525
  • 路径不正确的文件怎么删除(文件不存在)

    打开记事本输入:DEL/F/A/Q\?\%1RD/S/Q\?\%1保存为删除.bat将要删除的文件夹或文件拖到删除图标上,世界清净了。

    2022年4月12日
    92
  • html导航栏纵向代码,html横向导航栏怎么做?横向导航条代码实例

    html导航栏纵向代码,html横向导航栏怎么做?横向导航条代码实例有不少小伙伴在刚学习html的时候都会遇到这样一个问题:html横向导航栏怎么做?今天W3Cschool小编就为大家分享一下简单的横向导航条代码,相信会对大家有所帮助。html横向导航栏一般用两种方法来制作:第一种,我们使用块状结构结合行内结构来制作。第二种,我们使用​float​属性来制作。由于第一种比较常用,一下就以第一种方式来介绍。首先大家要明确一下块状元素与行内结构的不同之处:(1…

    2022年5月28日
    50
  • 随心感悟(转载)

    随心感悟(转载)前记 本文作者何莎莎 精通英语 西班牙语 日语 德语 法语 小升初 中考 高考从来都没参加过 因为她从来都是保送 本科毕业于南开大学英语系 后被保送读研 但是为了男朋友放弃读研 小小年纪便开始教雅思 年薪十万 已经很不错了 但是 毕业后作者内心其实极为痛苦 因为她的所有同学不是进外交部就是直接去国外名校读研 作者经过将近两年的挣扎 最后去了香港读全额奖学金的研究生 后来果断放弃 申请到了美国哥伦比

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号