#1159. 同径

同径

题目描述

Y 同学有一棵 nn 个点的树。有 qq 次询问,每次给出若干个点。

你需要判断这些点是否全部位于树上的同一条简单路径上。路径的两个端点可以是任意点,不一定在给出的点中。

输入格式

从文件 path.in 中读入数据。

第一行包含两个整数 n,qn,q。

接下来 n−1n-1 行,每行包含两个整数 u,vu,v,表示树的一条无向边。

接下来 qq 行,每行先给出一个整数 kk,再给出 kk 个点。同次询问允许出现重复点,重复出现不改变需要覆盖的点集。

输出格式

输出到文件 path.out 中。

对每次询问,若所有给出的点都能被一条简单路径覆盖,输出 YES,否则输出 NO。每个答案占一行。

样例 1 输入

6 4
1 2
2 3
2 4
4 5
4 6
3 3 2 4
3 3 5 6
4 1 3 5 6
1 6

样例 1 输出

YES
NO
NO
YES

样例 1 解释

点 3,2,43,2,4 位于路径 3→2→43\to2\to4 上;点 3,5,63,5,6 在点 44 附近形成分叉,无法由一条简单路径覆盖;点 1,3,5,61,3,5,6 同样不能被覆盖。单个点 66 可以被覆盖。

样例 2

见选手目录下的 path/path2.in 与 path/path2.ans。

该样例满足第 9∼129\sim12 个测试点的限制,n=50000n=50000,树是一条链,包含长查询与重复点。

样例 3

见选手目录下的 path/path3.in 与 path/path3.ans。

该样例满足第 13∼1613\sim16 个测试点的限制,n=100000n=100000,每次询问 k≤3k\le3,包含共线、分叉和重复点。

样例 4

见选手目录下的 path/path4.in 与 path/path4.ans。

该样例满足第 17∼2017\sim20 个测试点的限制,n=200000n=200000,树为一般随机树。

数据范围

对于所有测试数据,保证 1≤n,q≤2×1051\le n,q\le2\times10^5,输入的边构成一棵树;所有边端点及询问点编号在 1∼n1\sim n 之间。每次询问 k≥1k\ge1,所有询问的 kk 之和不超过 2×1052\times10^5。询问允许重复点,kk 不要求小于或等于 nn。

测试点编号 n≤n\le q≤q\le ∑k≤\sum k\le 特殊性质
1∼21\sim2 100100 500500 无
3∼53\sim5 20002000 50005000 A
6∼86\sim8 1000010000 2000020000 B
9∼129\sim12 5000050000 8000080000 A
13∼1613\sim16 100000100000 150000150000 B
17∼2017\sim20 200000200000 无

特殊性质 A:保证树是一条链。

特殊性质 B:保证每次询问 k≤3k\le3。

共有 2020 个测试点,每个测试点独立计 55 分。

统计

相关

在下列比赛中:

第四套