#P12180. DerrickLo's City (UBC002C)

    ID: 11695 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>线段树O2优化树链剖分

DerrickLo's City (UBC002C)

题目背景

DerrickLo 看到了一个 n7.5×105n \le 7.5 \times 10^5 的题,并且发现很多人写了 O(n2)O(n^2) 过了。于是他想写 O(nlog3n)O(n\log^3n),但是挂了。于是将原题的序列改成了树。

注:以上故事是将出题人的名字换成 DerrickLo 得到的。

题目描述

DerrickLo 在游戏中掌控着一个城市。这个城市内的团体间并不是非常的和谐,因此需要通过开会来增进关系。

已知这个组织所在的城市被分为了 nn 个镇,每一个镇上恰好有一个团体。其中编号为 11 的镇上分布着团体 1122 号镇上有团体 22,等等。这 nn 个镇通过 n1n-1 条路径相连,两两可以互相到达。

每次开会,DerrickLo 会指定一个区间 [l,r][l, r],邀请编号在 [l,r][l, r] 之间的团体来开会。由于团体比较分散,因此他还需要指定一个开会地址 pp。因为团体的关系比较僵硬,所以前往开会的团体去 pp 的途中,不能到达别的与会团体所在的镇。

由于 DerrickLo 刚接触这个游戏,操作不太熟悉,确定 pp 的任务就交给你了。

输入格式

第一行两个正整数 n,qn, q,表示镇的数量,会议个数。

接下来 n1n-1 行,每行两个正整数 ai,bia_i, b_i,表示 aia_i 镇 和 bib_i 镇之间有道路直接相连。

接下来 qq 行,每行两个整数 li,ril_i, r_i,表示此次由编号在 [li,ri][l_i, r_i] 之间的团体与会。

输出格式

对于每一个会议,单独输出一行。如果能够选出这个地点,则输出 Yes,否则输出 No

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

Yes
No

提示

对于第一个会议,1,2,61, 2, 6 镇均可作为参会点。

对于第二个会议,无论选哪里作为参会点,2,42, 4 两团体均会有一方经过另一镇。

数据范围

1n,q1051 \le n, q \le 10^5

保证道路 (ai,bi)(a_i, b_i) 使得任意两镇可互相到达。

1lirin1 \le l_i \le r_i \le n