QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100
[0]

# 7456. rdCcot

Statistics

给一棵边权为 1 的树和一个常数 C,节点用 1n 的整数表示。

定义 dist(a,b) 为节点 a,b 在树上的距离,即 ab 的简单路径上的边权和,特别地,dist(a,a)=0

每次查询的时候给出一个区间 [l,r],查询有多少个 C-块,定义如下:

对任意两个节点 a,b,定义 a,b 是 C-连通的,当且仅当存在一个长为 t 的节点序列 {vi},满足:

  1. v1=a
  2. vt=b
  3. 对任意 1it1dist(vi,vi+1)C
  4. 对任意 1itlvir

定义“C-块”为一个点集 S,满足:

  1. 对任意 a 属于 Sb 属于 S 的补集,a,b 不 C-连通
  2. 对任意 a,b 属于 Sab C-连通
  3. 对任意 a 属于 S,有 lar

输入格式

第一行三个数 nmC 依次表示树的节点个数,询问次数,还有常数 C

第二行共 n1 个数 p2p3pn,表示对于 2in 的整数 iipi 之间有一条无向边;

保证输入的数据构成一棵树;

之后 m 行,每行两个数 lr,表示这次询问的区间是 [l,r],保证 lr

保证 1n3105,1m6105

输出格式

m 行,依次回答各组询问:每行输出一行一个整数表示这组询问的答案。

样例数据

样例输入

10 9 2
1 1 1 2 3 4 1 1 1
1 3
2 4
3 5
4 6
5 7
6 8
7 9
8 10
5 5

样例输出

1
1
2
3
3
3
2
1
1

子任务

Idea:nzhtl1477,Solution:ccz181078,Code:nzhtl1477&ccz181078,Data:ccz181078

本题有多个子任务,每个子任务可能包含多个测试点,只有通过了一个子任务中的所有测试点才能得到该子任务的分数。

每个子任务的测试点满足一些特殊的限制,具体如下表:

子任务 分数 n m C 性质 1 性质 2
1 4 100 100 10
2 4 3×105 6×105 =299999
3 16 =299900
4 4 =1
5 8 2
6 8 3
7 8 4
8 8 105 105 3×105
9 4 3×105 6×105
10 8 3×105
11 4
12 8 105 2×105
13 8 2×105 4×105
14 8 3×105 6×105

其中,性质1、性质2的含义如下:

性质1:存在一个点 w 使得 dist(1,w)=n1

性质2:n=m,且第 i 次询问为 l=1,r=i