P15597 [ICPC 2020 Jakarta R] Writing Tasks
题目描述
2020 年,印度尼西亚举办了 $C$ 场编程竞赛,编号从 $1$ 到 $C$。每场竞赛有零道或多道为它编写的题目。有 $A$ 位题目作者可以为这些竞赛编写题目,编号从 $1$ 到 $A$。第 $i$ 位作者只喜欢竞赛集合 $L_i \subseteq \{1, 2, \dots, C\}$,并且只想为 $L_i$ 中的竞赛编写题目。每位作者不能为同一场竞赛编写超过一道题目。
此外,编程竞赛题目有 $T$ 个话题,编号从 $1$ 到 $T$。例如,话题 $1$ 可能与图论题目有关,话题 $2$ 可能与字符串题目有关,等等。每道题目恰好属于一个话题。第 $i$ 位作者熟悉话题集合 $F_i \subseteq \{1, 2, \dots, T\}$,并且只想编写关于 $F_i$ 中话题的题目。每位作者不能编写超过一道关于同一话题的题目。
另外,每场竞赛还有一个教学大纲。第 $j$ 场竞赛的大纲包含话题集合 $S_j \subseteq \{1, 2, \dots, T\}$,为该竞赛编写的题目的话题必须在 $S_j$ 中。每场竞赛不能有超过一道关于同一话题的题目。
你是一位印度尼西亚的编程竞赛爱好者。令人惊讶的是,你观察到以下情况:
- 每位作者最多喜欢两场竞赛。类似地,每场竞赛最多被两位作者喜欢。
- 每位作者最多熟悉两个话题。类似地,每个话题最多被两位作者熟悉。
- 每场竞赛的大纲最多包含两个话题。类似地,每个话题最多出现在两场竞赛的大纲中。
你想要找出在所有竞赛中最多能编写的题目总数。
输入格式
输入第一行包含三个整数 $A$、$C$ 和 $T$($1 \leq A, C, T \leq 50\,000$),分别表示题目作者的数量、竞赛的数量和话题的数量。
接下来 $A$ 行,每行以一个整数 $|L_i|$($0 \leq |L_i| \leq 2$)开头,表示第 $i$ 位作者喜欢的竞赛数量,后面跟着 $|L_i|$ 个整数 $L_i[x]$($1 \leq L_i[x] \leq C$),表示喜欢的竞赛。保证 $L_i$ 中的值互不相同。同时保证对于所有 $1 \leq j \leq C$,数值 $j$ 在 $\bigcup_{i=1}^A L_i$ 中最多出现两次。
接下来 $A$ 行,每行以一个整数 $|F_i|$($0 \leq |F_i| \leq 2$)开头,表示第 $i$ 位作者熟悉的话题数量,后面跟着 $|F_i|$ 个整数 $F_i[y]$($1 \leq F_i[y] \leq T$),表示熟悉的话题。保证 $F_i$ 中的值互不相同。同时保证对于所有 $1 \leq k \leq T$,数值 $k$ 在 $\bigcup_{i=1}^A F_i$ 中最多出现两次。
接下来 $C$ 行,每行以一个整数 $|S_j|$($0 \leq |S_j| \leq 2$)开头,表示第 $j$ 场竞赛大纲中的话题数量,后面跟着 $|S_j|$ 个整数 $S_j[z]$($1 \leq S_j[z] \leq T$),表示大纲中的话题。保证 $S_j$ 中的值互不相同。同时保证对于所有 $1 \leq k \leq T$,数值 $k$ 在 $\bigcup_{j=1}^C S_j$ 中最多出现两次。
输出格式
输出一行一个整数,表示在所有竞赛中最多能编写的题目总数。
说明/提示
#### 样例 #1 解释
最多可以编写两道题目:
1. 第 $1$ 位作者为第 $1$ 场竞赛编写一道关于话题 $1$ 的题目。
2. 第 $2$ 位作者为第 $2$ 场竞赛编写一道关于话题 $1$ 的题目。
注意,第 $1$ 位作者已经编写了一道关于话题 $1$ 的题目,因此他不能为第 $2$ 场竞赛再编写关于同一话题的题目。
此例可由下图说明,其中 $A_i$ 表示第 $i$ 位作者,$C_j$ 表示第 $j$ 场竞赛,$T_k$ 表示第 $k$ 个话题,粗线表示第一道题目,虚线表示第二道题目。
:::align{center}

:::
翻译由 DeepSeek 完成