题目描述
给定一棵有根树,由 n 个顶点组成,顶点编号从 1 到 n。树的根是编号为 1 的顶点。
树是一个有 n−1 条边的连通无向图。
给定 m 个询问。第 i 个询问由 ki 个互不相同的顶点组成:vi[1],vi[2],…,vi[ki]。你的任务是判断,是否存在一条从根到某个顶点 u 的路径,使得给定的每个 k 个顶点要么属于这条路径,要么到这条路径上的某个顶点的距离为 1。
输入格式
输入的第一行包含两个整数 n 和 m(2≤n≤2⋅105,1≤m≤2⋅105)——树中顶点的数量和询问的数量。
接下来的 n−1 行,每行描述树的一条边。第 i 条边由两个整数 ui 和 vi 表示,即它连接的两个顶点的编号 (1≤ui,vi≤n,ui=vi)。
保证给定的边构成一棵树。
接下来的 m 行描述询问。第 i 行描述第 i 个询问,并以整数 ki(1≤ki≤n)开头——表示当前询问中顶点的数量。随后给出 ki 个整数:vi[1],vi[2],…,vi[ki](1≤vi[j]≤n),其中 vi[j] 表示第 i 个询问中的第 j 个顶点。
保证单个询问中的所有顶点互不相同。
保证所有 ki 的总和不超过 2⋅105(i=1∑mki≤2⋅105)。
输出格式
对于每个询问,输出答案——如果存在一条从根到某个顶点 u 的路径,使得给定的每个 k 个顶点要么属于这条路径,要么到这条路径上的某个顶点的距离为 1,则输出 "YES";否则输出 "NO"。
10 6
1 2
1 3
1 4
2 5
2 6
3 7
7 8
7 9
9 10
4 3 8 9 10
3 2 4 6
3 2 1 5
3 4 8 2
2 6 10
3 5 4 7
YES
YES
YES
YES
NO
NO
提示
与样例对应的图片:

考虑这些询问。
第一个询问是 [3,8,9,10]。答案是 "YES",因为你可以选择从根 1 到顶点 u=10 的路径。此时顶点 [3,9,10] 属于从 1 到 10 的路径,而顶点 8 到顶点 7 的距离为 1,且顶点 7 也属于这条路径。
第二个询问是 [2,4,6]。答案是 "YES",因为你可以选择到顶点 u=2 的路径。此时顶点 4 到顶点 1 的距离为 1,且顶点 1 属于这条路径;顶点 6 到顶点 2 的距离为 1,且顶点 2 属于这条路径。
第三个询问是 [2,1,5]。答案是 "YES",因为你可以选择到顶点 u=5 的路径,并且询问中的所有顶点都属于这条路径。
第四个询问是 [4,8,2]。答案是 "YES",因为你可以选择到顶点 u=9 的路径,所以顶点 2 和 4 到顶点 1 的距离都为 1,且顶点 1 属于这条路径;顶点 8 到顶点 7 的距离为 1,且顶点 7 属于这条路径。
第五个和第六个询问的答案都是 "NO",因为你无法选择合适的顶点 u。