题目名称 2727. [USACO Open07]牛的进餐
输入输出 usaco_open07_dining.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 GravatarWHZ0325 于2019-02-12加入
开放分组 全部用户
提交状态
分类标签
网络流 USACO
查看题解 分享题解
通过:13, 提交:44, 通过率:29.55%
Gravataryrtiop 100 0.000 s 0.00 MiB C++
Gravatarop_组撒头屯 100 0.000 s 0.00 MiB C++
Gravatar䱖虁職 100 0.000 s 0.00 MiB C++
GravatarZRQ 100 0.000 s 0.00 MiB C++
Gravatar健康铀 100 0.000 s 0.00 MiB C++
Gravatar郑霁桓 100 0.000 s 0.00 MiB C++
Gravatar小金 100 0.000 s 0.00 MiB C++
Gravatarliuyiche 100 0.000 s 0.00 MiB C++
GravatarWHZ0325 100 0.009 s 3.79 MiB C++
GravatarHeSn 100 0.018 s 0.00 MiB C++
关于 牛的进餐 的近10条评论(全部评论)
Gravataryrtiop
2022-03-07 20:12 3楼
嗯,我称它为Dining算法
GravatarHtBest
2019-02-15 12:56 2楼
与1705重了。。。
还有,谁把241上的题搬上来了。。。
Gravatar小字、小瓶子
2017-07-05 08:18 1楼

2727. [USACO Open07]牛的进餐

★★   输入文件:usaco_open07_dining.in   输出文件:usaco_open07_dining.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

农夫约翰为牛们做了很好吃的食品,但是牛很挑食。每一头牛只喜欢一些食品或饮料而别的一概不吃。虽然他不一定能把所有牛喂饱,但他还是想让尽可能多的牛得到他们喜欢的食品和饮料。

农夫约翰做了 $F(1\le F\le 100)$ 种食品并准备了 $D(1\le D\le 100)$ 种饮料。他的 $N(1\le N\le 100)$ 头牛都已决定了是否愿意吃某种食物和喝某种饮料。农夫约翰想给每一头牛一种食品和一种饮料,使得尽可能多的牛得到喜欢的食物和饮料。

注意,每一件食物或饮料只能给一头牛。例如,如果食物 $2$ 被一头牛吃掉了,没有别的牛能吃食物 $2$。

【输入格式】

第一行:三个整数 $N,F$ 和 $D$。

第二到 $N+1$ 行:每一行由两个数 $F_i$ 和 $D_i$ 开始,分别是第 $i$ 头牛可以吃的食品数和可以喝的饮料数。下面 $F_i$ 个整数是第 $i$ 头牛可以吃的食品号,再下面的 $D_i$ 个整数是第 $i$ 头牛可以喝的饮料号码。

【输出格式】

一行:一个整数,表示农夫约翰最多可以喂饱牛的数目。

【样例输入】

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$:食品从 $\{1,2\}$, 饮料从 $\{1,2\}$ 中选。
牛 $2$:食品从 $\{2,3\}$, 饮料从 $\{1,2\}$ 中选。
牛 $3$:食品从 $\{1,3\}$, 饮料从 $\{1,2\}$ 中选。
牛 $4$:食品从 $\{1,3\}$, 饮料从 $\{3\}$ 中选。

一个方案是:

牛 $1$:不吃。
牛 $2$:食品 $2$, 饮料 $2$。
牛 $3$:食品 $1$, 饮料 $1$。
牛 $4$:食品 $3$, 饮料 $3$。

用鸽笼定理可以推出没有更好的解(一共只有 $3$ 种食品和饮料)。当然,别的数据会更难。

【来源】

USACO Open07 Gold