#4742. Merge Set

0

Merge Set

Merge Set

题目描述

在黑板上,有 NN 个集合 S1,S2,…,SNS_1,S_2,\dots,S_N,它们由介于 11 和 MM 之间的整数构成。这里,$S_i = \lbrace S_{i,1},S_{i,2},\dots,S_{i,A_i} \rbrace$。 你可以任意次(可能为零次)执行以下操作:

选择两个至少有一个公共元素的集合 XX 和 YY。将它们从黑板上擦掉,并在黑板上写下 X∪YX\cup Y。

这里,X∪YX\cup Y 表示由至少属于 XX 或 YY 的元素组成的集合。 判断是否可以得到一个同时包含 11 和 MM 的集合。如果可能,求出得到它所需的最小操作次数。

输入格式

输入为标准输入,格式如下: NN MM A1A_1 S1,1S_{1,1} S1,2S_{1,2} …\dots S1,A1S_{1,A_1} A2A_2 S2,1S_{2,1} S2,2S_{2,2} …\dots S2,A2S_{2,A_2} ⋮\vdots ANA_N SN,1S_{N,1} SN,2S_{N,2} …\dots SN,ANS_{N,A_N}

输出格式

如果可以得到一个同时包含 11 和 MM 的集合,输出得到它所需的最小操作次数;如果不可能,输出 −1-1。

3 5
2
1 2
2
2 3
3
3 4 5
2
1 2
2
1 2
0
3 5
2
1 3
2
2 4
3
2 4 5
-1
4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8
2

提示

1≤N≤2×1051 \le N \le 2 \times 10^5 2≤M≤2×1052 \le M \le 2 \times 10^5 1≤∑i=1NAi≤5×1051 \le \sum_{i=1}^{N} A_i \le 5 \times 10^5 1≤Si,j≤M(1≤i≤N,1≤j≤Ai)1 \le S_{i,j} \le M(1 \le i \le N,1 \le j \le A_i) S_{i,j} \neq S_{i,k}(1 \le j < k \le A_i) 输入中的所有数值都是整数。首先,选择并移去 {1,2}\lbrace 1,2 \rbrace 和 {2,3}\lbrace 2,3 \rbrace 来得到 {1,2,3}\lbrace 1,2,3 \rbrace。 然后,选择并移去 {1,2,3}\lbrace 1,2,3 \rbrace 和 {3,4,5}\lbrace 3,4,5 \rbrace 来得到 {1,2,3,4,5}\lbrace 1,2,3,4,5 \rbrace。 因此,可以通过两次操作得到一个同时包含 11 和 MM 的集合。由于不可能仅通过一次操作实现目标,答案为 22。
S1S_1 已经包含了 11 和 MM,所以所需的最小操作次数为 00。

标签: AtCoder|abc302F

来源

AtCoder|abc302F