AT_abc302_f.[ABC302F] Merge Set

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

黑板上写有 NN 个集合 S1,S2,…,SNS_1,S_2,\dots,S_N,每个集合由 11 到 MM 之间的若干整数构成。具体地,Si={Si,1,Si,2,…,Si,Ai}S_i = \lbrace S_{i,1}, S_{i,2}, \dots, S_{i,A_i} \rbrace。

你可以进行如下操作任意次(也可以一次都不做):

  • 选择两个有至少一个公共元素的集合 X,YX,Y,将它们从黑板上擦去,并将 X∪YX \cup Y 写到黑板上。

这里,X∪YX \cup Y 指的是由 XX 或 YY 至少包含的元素组成的集合。

请判断是否可以通过若干次操作,得到一个同时包含 11 和 MM 的集合。如果可以,输出所需操作次数的最小值;否则输出 −1-1。

输入格式

输入按以下格式从标准输入给出。

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。

输入输出样例

  • 输入#1

    3 5
    2
    1 2
    2
    2 3
    3
    3 4 5

    输出#1

    2
  • 输入#2

    1 2
    2
    1 2

    输出#2

    0
  • 输入#3

    3 5
    2
    1 3
    2
    2 4
    3
    2 4 5

    输出#3

    -1
  • 输入#4

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

    输出#4

    2

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 2≤M≤2×1052 \leq M \leq 2 \times 10^5
  • 1≤∑i=1NAi≤5×1051 \leq \sum_{i=1}^{N} A_i \leq 5 \times 10^5
  • 1≤Si,j≤M (1≤i≤N,1≤j≤Ai)1 \leq S_{i,j} \leq M \ (1 \leq i \leq N, 1 \leq j \leq A_i)
  • Si,j≠Si,k (1≤j<k≤Ai)S_{i,j} \neq S_{i,k} \ (1 \leq j < k \leq A_i)
  • 输入均为整数。

样例解释 1

首先,选择 {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。这样经过 22 次操作可以得到同时包含 11 和 MM 的集合。由于一次操作无法达成目标,答案为 22。

样例解释 2

一开始 S1S_1 就同时包含 11 和 MM,因此最小操作次数为 00。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页