CF613D Kingdom and its Cities
题目描述
与此同时,K 王国正在为国王女儿的婚礼做准备。然而,为了不在亲戚面前丢脸,国王必须先完成对王国的改革。由于国王迫不及待地想让女儿出嫁,改革必须尽快完成。
该王国目前由 $n$ 个城市组成。城市之间通过 $n-1$ 条双向道路连接,使得任意两个城市之间都可以互相到达。由于国王需要节省开支,所以任意两个城市之间只有一条路径。
改革的目的是什么?国家的重要部门需要分别迁移到不同的城市(我们称这些城市为“重要城市”)。然而,考虑到有蛮族入侵的高风险,必须谨慎进行。国王制定了多个计划,每个计划都描述了一组重要城市,现在他想知道哪个计划最优。
蛮族可以攻占一些非重要城市(重要城市肯定会有足够的保护),被攻占的城市将变得无法通行。具体来说,对于一个计划,其一个有趣的特性是:让所有重要城市都相互隔离(即从任何一个重要城市都无法到达其余重要城市)时,蛮族至少需要攻占多少个城市。
请帮助国王计算每个计划所需攻占的最少城市数。如果蛮族无论怎么攻占,都不能彻底隔离所有重要城市,请输出 $-1$。
输入格式
输入第一行为整数 $n$($1 \leq n \leq 100000$),表示王国的城市数量。
接下来的 $n-1$ 行,每行包含两个不同的整数 $u_i, v_i$($1 \leq u_i, v_i \leq n$),表示第 $i$ 条道路连接编号为 $u_i$ 和 $v_i$ 的城市。保证你可以只通过现有的道路,从任意一个城市到达另一个城市。
下一行为一个整数 $q$($1 \leq q \leq 100000$),表示国王计划的数量。
接下来的 $q$ 行,每行的格式如下:首先是一个整数 $k_i$,表示该计划中的重要城市数量($1 \leq k_i \leq n$),然后紧跟 $k_i$ 个用空格分隔的不同的 $1$ 到 $n$ 之间的整数,表示该计划中的重要城市。
所有 $k_i$ 之和不超过 $100000$。
输出格式
对于每个计划,输出一个整数,表示蛮族至少需要攻占的最少城市数。如果无论怎么攻占都无法完全隔离所有重要城市,输出 $-1$。
说明/提示
在第一个样例中,对于第一个和第三个国王的计划,蛮族只需攻占城市 $3$ 即可。对于第二个和第四个计划,蛮族无论如何都无法使所有重要城市相互隔离。
在第二个样例中,蛮族需要攻占城市 $3$ 和 $5$。
由 ChatGPT 5 翻译