#Lutece3152. 用户管理系统

用户管理系统

Migrated from Lutece 3152 用户管理系统

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

注意:本题不计一血

lllei 这几天在忙着写用户管理系统,该系统其中一个需求如下:

如果一个人对一个单位有管理权限,那么此人对该单位的子单位(包括子单位的子单位,子单位的子单位的子单位……)也具有管理权限。

那么该如何快速判断,如果一个人对一个单位具有管理权限,是否对于另一个单位也具有管理权限呢?

lllei 用了 0.0000000000000000000010.000000000000000000001 s 的时间迅速地想到了 LCA 的解法,但因为忙着睡大觉,摆大烂,于是他将这个问题抛给了你。


具体问题如下:

给你 nn 个单位,单位编号为 1n1 \sim n 并给出了 n1n - 1 个单位之间的父子关系,形成了一个有根树。

mm 个询问,询问之间相互独立,每次给出 xxyy,请问你如果一个人对编号为 xx 的单位具有管理权限,那他是否一定对编号为 yy 的单位也具有管理权限。如果是,则输出 YES;反之,则输出 NO

Input

第一行有两个正整数,分别代表 nnmm

接下来 n1n - 1 行,每行包含两个正整数 aabb,代表编号为 aa 的单位是编号为 bb 的单位的父级单位(保证能形成一颗有根树)。

接下来 mm 行,每行包含两个正整数 xxyy,表示一次如题面所示的询问。

Output

输出包含 mm 行,每行包含一个 YESNO,表示对询问的回答。

Samples

2 3
1 2
1 2
2 1
2 2
YES
NO
YES
2 2
2 1
1 2
2 1
NO
YES

Constraints

1n3×1051 \le n \le 3 \times 10^5

1m3×1051 \le m \le 3 \times 10^5

1a,b,x,yn1 \le a, b, x, y \le n

Note

此题虽然能 O(n)O(n) 解决(但 lllei 还是希望你能够使用 LCA 算法解决该问题 :))。

Resources

2024 UESTC ICPC Training for Graph