#PTA2025L203. 我穿越了,竟成了好兄弟的父亲

我穿越了,竟成了好兄弟的父亲

题目描述

说好的当一辈子兄弟,你竟然当我爹。

兄弟害怕小说成真,连夜打开关系谱查询小说有没有成真。

但是由于关系谱太过复杂,所以不懂编程的他希望你帮他写一个程序,检查他的好兄弟们是否依然是兄弟。

关系谱可以简化成一棵有根树^*,每个人在树上都是一个节点。

若两人是兄弟关系,当且仅当两人在树上对应的两个节点 uuvv,满足 uu 不是 vv 的祖先^{\dagger}vv 也不是 uu 的祖先^{\dagger}

给定一个有 nn 个节点的有根树,其根为 11,和一个长度为 mm 的节点序列 aa,表示兄弟们对应树上的节点号。

你需要帮他检查是否存在点对 (i,j)(i, j),满足 iji \ne jaia_iaja_j 不为兄弟关系。

如果存在输出 Yes,否则输出 No


^*一颗包含 nn 个节点的树是指一个具有 nn 个节点、n1n-1 条边的无向连通图。有根树是在树中指定一个特殊的顶点作为根的树。

^{\dagger}节点 uu 的祖先指所有满足以下条件的顶点 vvvuv \ne u,并且从根节点到 uu 的最短路径经过 vv

输入描述

有多组测试用例。

第一行包含一个正整数 tt1t1031\le t \le 10^3),表示测试用例组数。

对每组测试用例:

第一行包含两个正整数 nnmm1mn1061\le m \le n \le 10^6),分别表示关系谱的节点数、兄弟们人数。

接下来 n1n - 1 行,每行包含两个正整数 uuvv1u,vn1\le u, v \le n),表示 uuvv 之间存在一条边。

保证给定的边构成一棵树。

接下来一行包含 mm 个正整数 a1,a2,,ama_1, a_2, \dots,a_m1ain1\le a_i \le n),表示兄弟在树上对应的节点号。

保证 aia_i 互不相同。

保证所有测试用例中 nn 的和不超过 10610^6

输出描述

对每组测试用例:

输出一行,包含 YesNo,表示答案。

请注意,本题输出严格区分大小写。

样例

2
7 4
1 2
1 3
2 4
2 5
3 6
3 7
4 5 6 7
7 4
1 2
1 3
2 4
2 5
3 6
3 7
3 4 5 6
No
Yes

数据范围

共有 2525 组测试点。

1010 组测试点 nn 之和不超过 10410^4

1515 组测试点 nn 之和不超过 10610^6