P2891 [USACO07OPEN] Dining G

题目描述

奶牛是如此挑剔的食客。每头奶牛都有自己偏好的食物和饮料,她们不会吃其他的东西。 农夫约翰为他的奶牛们准备了丰盛的饭菜,但他忘记检查菜单是否符合她们的偏好。虽然他可能无法满足所有奶牛,但他希望尽可能多地为奶牛提供一份完整的食物和饮料。 农夫约翰准备了 $F$ 种食物($1 \le F \le 100$)和 $D$ 种饮料($1 \le D \le 100$)。他的 $N$ 头奶牛($1 \le N \le 100$)已经决定她们愿意吃某种食物或喝某种饮料。农夫约翰必须为每头奶牛分配一种食物类型和一种饮料类型,以最大化同时获得食物和饮料的奶牛数量。 每种食物或饮料只能被一头奶牛消费(即,一旦食物类型 2 被分配给一头奶牛,其他奶牛就不能再被分配食物类型 2)。

输入格式

第 1 行:三个用空格分隔的整数:$N$,$F$ 和 $D$。 第 2 行到第 $N+1$ 行:每行 $i$ 以两个整数 $F_i$ 和 $D_i$ 开始,分别表示奶牛 $i$ 喜欢的食物数量和饮料数量。接下来的 $F_i$ 个整数表示奶牛 $i$ 会吃的食物,接下来的 $D_i$ 个整数表示奶牛 $i$ 会喝的饮料。

输出格式

第 1 行:一个整数,表示可以同时满足食物和饮料愿望的最大奶牛数量。

说明/提示

一种满足三头奶牛的方法是: 奶牛 1:没有餐食 奶牛 2:食物 #2,饮料 #2 奶牛 3:食物 #1,饮料 #1 奶牛 4:食物 #3,饮料 #3 鸽巢原理告诉我们,由于只有三种食物或饮料,我们不能做得更好。当然,其他测试数据集更具挑战性。 (由 ChatGPT 4o 翻译)