AT_abc302_f [ABC302F] Merge Set
题目描述
黑板上写有 $N$ 个集合 $S_1,S_2,\dots,S_N$,每个集合由 $1$ 到 $M$ 之间的若干整数构成。具体地,$S_i = \lbrace S_{i,1}, S_{i,2}, \dots, S_{i,A_i} \rbrace$。
你可以进行如下操作任意次(也可以一次都不做):
- 选择两个有至少一个公共元素的集合 $X,Y$,将它们从黑板上擦去,并将 $X \cup Y$ 写到黑板上。
这里,$X \cup Y$ 指的是由 $X$ 或 $Y$ 至少包含的元素组成的集合。
请判断是否可以通过若干次操作,得到一个同时包含 $1$ 和 $M$ 的集合。如果可以,输出所需操作次数的最小值;否则输出 $-1$。
输入格式
输入按以下格式从标准输入给出。
> $N$ $M$ $A_1$ $S_{1,1}$ $S_{1,2}$ $\dots$ $S_{1,A_1}$ $A_2$ $S_{2,1}$ $S_{2,2}$ $\dots$ $S_{2,A_2}$ $\vdots$ $A_N$ $S_{N,1}$ $S_{N,2}$ $\dots$ $S_{N,A_N}$
输出格式
如果可以得到同时包含 $1$ 和 $M$ 的集合,输出所需操作次数的最小值;否则输出 $-1$。
说明/提示
## 限制条件
- $1 \leq N \leq 2 \times 10^5$
- $2 \leq M \leq 2 \times 10^5$
- $1 \leq \sum_{i=1}^{N} A_i \leq 5 \times 10^5$
- $1 \leq S_{i,j} \leq M \ (1 \leq i \leq N, 1 \leq j \leq A_i)$
- $S_{i,j} \neq S_{i,k} \ (1 \leq j < k \leq A_i)$
- 输入均为整数。
## 样例解释 1
首先,选择 $\lbrace 1,2 \rbrace$ 和 $\lbrace 2,3 \rbrace$,合并为 $\lbrace 1,2,3 \rbrace$。然后,选择 $\lbrace 1,2,3 \rbrace$ 和 $\lbrace 3,4,5 \rbrace$,合并为 $\lbrace 1,2,3,4,5 \rbrace$。这样经过 $2$ 次操作可以得到同时包含 $1$ 和 $M$ 的集合。由于一次操作无法达成目标,答案为 $2$。
## 样例解释 2
一开始 $S_1$ 就同时包含 $1$ 和 $M$,因此最小操作次数为 $0$。
由 ChatGPT 4.1 翻译