[AHOI2022] 回忆

题目背景

生活在题面里的他们,是一群怪异的少年。 对城市中修建道路需满足的基本物理限制熟视无睹,沉迷于十万个城市、百万条道路上的各种结构。 明明知道真正需要的数字庞大到无法计算,却偏要关心它模一个奇怪素数之后得到的结果。 如此智力超群的他们,却总是在自己提出的诡异的问题下败下阵来,把它们一股脑地丢给你们来做。 如今,他们长大了。他们学习到更普适的理论,习惯了更抽象的符号,不必再思考如此古怪的问题。但他们不曾料到,你们却以这些 “无用” 的问题为驱动,于计算机学科体系的一隅,开垦出了一片独属于 OI 的新天地。 有一天,他们各自回忆起了少年时期提出的问题。

题目描述

少年时,他们提出了 $n$ 个问题,从 $1$ 到 $n$ 编号。一个问题总由一个更基础的问题衍生而来,因此问题之间构成了一个树形的结构:$1$ 号问题是最基本的问题,也就是树的根节点,而其他问题都由其父亲节点对应的问题衍生而来。如果两个问题在树上相邻,则称这两个问题**彼此相关**。 少年时期的他们一共做了 $m$ 次研究,第 $i$ 次的研究从提出较为基本的问题 $s_i$ 开始,将它不断地修改、推广,最终提出问题 $t_i$。这些研究满足 $s_i \ne t_i$ 且 **$\bm{s_i}$ 必定是 $\bm{t_i}$ 的祖先**。即使研究的问题完全相同,从不同的角度研究会有不同的结果,因此**可能存在 $\bm{i \ne j, (s_i, t_i) = (s_j, t_j)}$ 的情形**。 现在,他们正一轮轮地回忆着少年时提出的问题。在他们每一轮对问题的回忆中,他们首先回忆到 $n$ 个问题中的任意一个。接下来,如果存在与当前回忆到的问题**彼此相关且在这轮回忆中没有被回忆到**的问题,那么他们可以将思绪从当前问题上切换到这些问题中的**任意一个**,并回忆到这个新的问题。他们可以不断地切换思绪,也可以在回忆到任何一个问题之后结束回忆。**每一轮回忆是独立的,也就是说一个问题可以被多轮回忆回忆起。** 如果在某一轮回忆中,他们**同时**回忆到了问题 $s_i$ 和问题 $t_i$,则称第 $i$ 次研究**被想起**。 为了更好地理解上述概念,考察以下例子:$n = 5$,问题 $1$ 与问题 $2, 3$ 相关,问题 $3$ 与问题 $4, 5$ 相关。一轮可能的回忆是:从问题 $2$ 开始回忆,切换思绪到问题 $1$,再切换到问题 $3$,最终切换到问题 $5$ 并结束回忆。如果 $m = 4$,$(s_1, t_1) = (1, 2), (s_2, t_2) = (1, 4), (s_3, t_3) = (s_4, t_4) = (3, 5)$,那么这轮回忆会让第 $1$ 次、第 $3$ 次和第 $4$ 次研究被想起,而第 $2$ 次研究不会被想起。 他们问你们的最后一个问题是:**如果每轮回忆的起点以及思绪的切换可以任意选择,最少需要多少轮回忆才能使所有的研究都被想起。**

输入输出格式

输入格式


**本题有多组测试数据**。输入的第一行包含一个正整数 $T$,表示数据组数。 对于每组测试数据,第一行包含两个正整数 $n, m$,分别表示问题的个数和研究的个数。 接下来 $n - 1$ 行每行包含两个正整数 $u_i, v_i$,表示问题 $u_i$ 与问题 $v_i$ 相关。 接下来 $m$ 行每行包含两个正整数 $s_i, t_i$,描述一次研究。

输出格式


对于每组测试数据输出一行一个正整数,表示他们**最少**需要回忆的轮数使得 $m$ 次研究均被想起。

输入输出样例

输入样例 #1

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

输出样例 #1

2
2

说明

**【样例解释 \#1】** 样例中的第一组数据与题目描述所给的例子相同。一种可能的回忆方案为: - 第一轮回忆中,从问题 $2$ 开始,依次切换思绪到问题 $1, 3, 5$。此时第 $1, 3, 4$ 次研究被想起,但第 $2, 5$ 次没有。 - 第二轮回忆中,从问题 $4$ 开始,依次切换思绪到问题 $3, 1$。此时第 $2, 5$ 次研究被想起。 第二组数据符合特性 A 的要求。一种可能的回忆方案为:第一次回忆依次回忆到 $2, 1, 3, 5, 6$,第二次回忆依次回忆到 $8, 7, 9, 10$。 **【样例 \#2】** 见附件中的 `memory/memory2.in` 与 `memory/memory2.ans`。 这组数据满足了测试点 $1 \sim 4$ 的条件。 **【样例 \#3】** 见附件中的 `memory/memory3.in` 与 `memory/memory3.ans`。 这组样例满足了特性 A 的条件。且除了后 $3$ 组数据外,其余样例均满足 $n, m \le 1000$。除了后 $30$ 组数据外,其余样例均满足 $n, m \le 30$。你也可以用这组样例完成对较小规模数据的测试。 **【样例 \#4】** 见附件中的 `memory/memory4.in` 与 `memory/memory4.ans`。 这组样例满足了测试点 $24 \sim 25$ 的条件。同样例 \#3,本样例满足:除了后 $3$ 组数据外,其余样例均满足 $n, m \le 1000$。除了后 $30$ 组数据外,其余样例均满足 $n, m \le 30$。你也可以用这组样例完成对较小规模数据的测试。 **【样例 \#5】** 见附件中的 `memory/memory5.in` 与 `memory/memory5.ans`。 这组样例满足了特性 B 的条件。 **【样例 \#6】** 见附件中的 `memory/memory6.in` 与 `memory/memory6.ans`。 这组样例满足了特性 C 的条件。 **【评分方式】** 对于每一组测试点,如果你的输出格式正确,且每一组数据输出的答案正确,那么你会获得 $4$ 分。 否则,如果你的输出格式正确,且对于每一组数据,你输出的答案**与正确答案相等或者比正确答案大 $\bm{1}$**,那么你将在此测试点上获得 $3$ 分。 **【数据范围】** 本题共 $25$ 个测试点。对于所有的测试点,$1 \le n, m \le 2 \times {10}^5$,$1 \le \sum n, \sum m \le 5 \times {10}^5$,$1 \le u_i, v_i, s_i, t_i \le n$,$s_i \ne t_i$。保证输入的 $(u_i, v_i)$ 构成一棵树,$s_i$ 在以 $1$ 为根的树上是 $t_i$ 的祖先。 | 测试点 | 规模限制 | 特殊性质 | |:-:|:-:|:-:| | $1 \sim 4$ | $T \le 3000$,$n \le 50$,$m \le 15$ 且最多有 $5$ 组数据满足 $m \ge 10$ | 无 | | $5 \sim 6$ | $n, m \le 100$,$\sum n^3, \sum m^3 \le 3 \times {10}^7$ | A | | $7$ | $n, m \le 100$,$\sum n^3, \sum m^3 \le 3 \times {10}^7$ | B | | $8$ | $n, m \le 100$,$\sum n^3, \sum m^3 \le 3 \times {10}^7$ | C | | $9$ | $n, m \le 100$,$\sum n^3, \sum m^3 \le 3 \times {10}^7$ | 无 | | $10 \sim 11$ | $n, m \le 1000$,$\sum n^2, \sum m^2 \le 3 \times {10}^7$ | A | | $12$ | $n, m \le 1000$,$\sum n^2, \sum m^2 \le 3 \times {10}^7$ | B | | $13$ | $n, m \le 1000$,$\sum n^2, \sum m^2 \le 3 \times {10}^7$ | C | | $14 \sim 16$ | $n, m \le 1000$,$\sum n^2, \sum m^2 \le 3 \times {10}^7$ | 无 | | $17 \sim 18$ | $n, m \le 2 \times {10}^5$,$\sum n, \sum m \le 5 \times {10}^5$ | B | | $19 \sim 20$ | $n, m \le 2 \times {10}^5$,$\sum n, \sum m \le 5 \times {10}^5$ | C | | $21 \sim 23$ | $n, m \le 2 \times {10}^5$,$\sum n, \sum m \le 5 \times {10}^5$ | A | | $24 \sim 25$ | $n, m \le 2 \times {10}^5$,$\sum n, \sum m \le 5 \times {10}^5$ | 无 | 特殊性质 A:保证 $n$ 为偶数,且树的结构为:对于任意正整数 $1 \le i \le \lfloor \frac{n}{2} \rfloor$,$2 i$ 的父亲为 $2 i - 1$;若 $i \ge 2$,则 $2 i - 1$ 的父亲为 $2 i - 3$。 特殊性质 B:保证对于所有的正整数 $1 \le i \le m$,$s_i$ 为 $t_i$ 的父亲。 特殊性质 C:保证对于所有的正整数 $1 \le i \le m$,$s_i = 1$。 请注意,**测试点的难度与编号并没有直接关系**。 **【提示】** 请注意,为了取得部分分,你必须保证输出格式正确,即:输出恰好有 $m$ 行,且每行是一个正整数。 此外,如果某组测试数据中你输出的结果比答案小 $1$ 而不是大 $1$,那么你**不能**在该测试点获得 $3$ 分。 本题部分测试点读入量较大。为了优化程序的总运行时间,我们建议你采用较为快速的读入方式。