P13793 [SWERC 2023] Supporting everyone

题目描述

:::align{center} ![](https://espresso.codeforces.com/9b693d641063096ae32c5b06333b6fdf2138d3da.png) ::: Alice 参加了一场有许多国家队伍的体育赛事,对她来说有一件事很重要:支持每一个国家。 共有 $N$ 个国家参赛,她有两种方式支持一个国家:要么在身上画上该国国旗的颜色,要么佩戴带有该国名字的徽章。Alice 有一份清单,列出了每个国家国旗所需的颜色。所有国旗一共可能用到 $M$ 种颜色,在 Alice 的清单中,每种颜色都用 $1$ 到 $M$ 之间的整数表示。 每支蜡笔和每个徽章的价格都是 $1$,但她的预算很紧张……你能帮她计算出支持所有国家所需的最小花费吗?

输入格式

第一行包含两个用空格分隔的整数 $N$ 和 $M$。 接下来有 $2N$ 行,每两行为一组,描述第 $i$ 个国家。 具体来说,第 $2i-1$ 行包含一个整数 $k_i$,表示第 $i$ 个国家国旗所需的颜色数。 第 $2i$ 行包含 $k_i$ 个用空格分隔的整数 $c_{i,1}, c_{i,2}, \dots , c_{i,k_i}$,表示第 $i$ 个国家国旗所需的颜色。 **数据范围** - $1 \leq N \leq 1000$; - $1 \leq M \leq 100$; - $1 \leq k_i \leq M$,对于所有 $i \leq N$; - $1 \leq c_{i,j} \leq M$,对于所有 $i \leq N$ 且 $j \leq k_i$; - 对于所有 $i \leq N$,颜色编号均在 $1$ 到 $M$ 之间。

输出格式

输出一行,一个整数,表示 Alice 支持所有国家所需的最小花费(蜡笔和徽章的总数)。

说明/提示

**样例解释 1** 前三个国家可能是法国、荷兰和捷克共和国,它们的国旗都包含蓝色(1)、白色(4)和红色(5)。接下来的三个国家可能是意大利、匈牙利和保加利亚,国旗包含绿色(3)、白色(4)和红色(5)。最后一个国家可能是德国,国旗包含黑色(2)、红色(5)和黄色(6)。最小花费为 5:购买四支蜡笔(蓝色、绿色、白色和红色)和一个徽章(用于德国)。 **样例解释 2** 我们可以为颜色 7 和 9 各买一支蜡笔,再为两个国家各买一个徽章,总花费为 4。所有包含颜色 7(红色)和 9(白色)的六个国家可能是加拿大、印度尼西亚、日本、马耳他、摩纳哥和波兰。伯利兹的国旗有 12 种颜色,包括红色和白色,第五个国家可能是博茨瓦纳。 >注:在原题面中,该样例解释中是购买颜色 7 和 11 的蜡笔,但实际上应该是颜色 7 和 9。 由 ChatGPT 4.1 翻译