P12698 [KOI 2022 Round 2] 树与查询

题目背景

试题来源:。中文翻译做了少量本土化修改。 按照[署名—非商业性使用—相同方式共享 4.0 协议国际版](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)进行授权。

题目描述

有一个由 1 到 $N$ 的 $N$ 个节点组成的树。第 $i$ 条边连接两个不同的节点 $A_i$ 和 $B_i$。($1 \leq i \leq N - 1$) 在这 $N$ 个节点中选择一些节点,记为 $S = \{s_1, s_2, \dots, s_K\}$。如果存在 $i$ ($1 \leq i \leq K$),使得 $s_i = v$,则称节点 $v$ 属于集合 $S$。 如果集合 $S$ 中的两个不同节点 $u$ 和 $v$ 满足,仅通过集合 $S$ 中的节点即可在树上从 $u$ 移动到 $v$,则称“$u$ 和 $v$ 在 $S$ 上是连接的”。 例如,考虑如下树($N = 7$)。如果 $K = 6$ 且 $S = \{1, 2, 3, 4, 5, 6\}$,则 “1 和 2”、“3 和 5”、“4 和 6”在集合 $S$ 上是连接的。 ![](https://cdn.luogu.com.cn/upload/image_hosting/iioob9ly.png) 然而,“1 和 6”、“2 和 7”在集合 $S$ 上不是连接的。 我们定义满足以下条件的节点对 $(u, v)$ 的数量为集合 $S$ 的连接强度: 1. $u$ 和 $v$ 是不同的两个节点。 2. $1 \leq u < v \leq N$。 3. $u$ 和 $v$ 在集合 $S$ 上是连接的。 给定一个选择的节点集合 $S$,请计算 $S$ 的连接强度。你需要回答 $Q$ 个查询。

输入格式

第一行给出整数 $N$。 接下来 $N - 1$ 行,每行包含两个整数 $A_i$ 和 $B_i$,表示第 $i$ 条边连接的两个节点。 接着是一个整数 $Q$,表示查询的数量。 接下来 $Q$ 行,每行表示一个查询。每个查询首先给出整数 $K$,接着是 $K$ 个整数 $s_1, s_2, \dots, s_K$,表示集合 $S$。

输出格式

对于每个查询,输出一行,表示该查询中给定集合 $S$ 的连接强度。

说明/提示

**约束条件** - $2 \leq N \leq 250,000$ - $1 \leq Q \leq 100,000$ - 对于所有的 $i$($1 \leq i \leq N - 1$),有 $1 \leq A_i \leq N$。 - 对于所有的 $i$($1 \leq i \leq N - 1$),有 $1 \leq B_i \leq N$。 - 对于所有的 $i$($1 \leq i \leq N - 1$),有 $A_i \neq B_i$。 - 给定的图是树。 - 对于每个查询,$1 \leq K \leq N$。 - 对于每个查询,给出的 K 个节点 $s_1, s_2, \dots, s_K$ 是不同的。 - 在 $Q$ 个查询中,所有的 $K$ 总和不超过 1,000,000。 **子任务** 1. (3 分)$N = 3$。 2. (10 分)$N \leq 50, Q \leq 50$。 3. (11 分)$N \leq 2,500, Q \leq 2,500$。 4. (13 分)每个查询中,$K = 3$。 5. (63 分)无额外约束条件。