#P1088. 树上的树

树上的树

问题描述

​ 现有 nn 个正整数 a1, a2, ..., ana_1,\ a_2,\ ...,\ a_n 以及一个参数 kk

​ 定义一个大小为 xx 的有序集合 S={p1, p2, ..., px}S = \{p_1,\ p_2,\ ...,\ p_x\}tt 意义下是能入眼的,当且仅当对所有 1i<x1 \leqslant i < xtpi<pi+1t \leqslant p_i < p_{i+1}

​ 定义一个大小为 xx 的有序集合 S={p1, p2, ..., px}S = \{p_1,\ p_2,\ ...,\ p_x\}tt 意义下为优美集,当且仅当它在 tt 意义下能入眼且不存在 1ix1 \leqslant i \leqslant x 使得 apiap1>k|a_{p_i} - a_{p_1}| >k

​ 多次查询满足 {x, x+1,..., y}S\{x,\ x+1, ...,\ y\} \subseteq S 的最大在 tt 意义下的优美集 SS 的大小。部分测试点强制在线。

输入格式

​ 第一行一个正整数表示测试点编号。

​ 第二行四个正整数 n, k, Qnum, on,\ k,\ Qnum,\ oQnumQnum 代表询问个数,oo 为 0 或 1,表示是否强制在线。

​ 接下来一行 nn 个正整数表示 a1, a2, ..., ana_1,\ a_2,\ ...,\ a_n

​ 接下来 QnumQnum 行,每行三个整数 t, x, yt,\ x,\ y。如果 o=1o = 1,你需要把 ttxxyy 异或上上一次询问的答案,异或的操作符为 ^ 或 xor\operatorname{xor}

​ 保证解密后 xyx \leqslant y

输出格式

​ 对于每个询问输出一行答案。不存在满足条件的集合输出 00

-1
5 3 2 0
1 4 2 4 8
1 2 3
2 4 5
4
0

样例 2

​ 见目录下 tot2.in/ans。该样例满足数据点 2-3 且 o = 1 的性质。

样例 3

​ 见目录下 tot3.in/ans。该样例满足数据点 9 的性质。

样例解释 1

​ 对于第一组询问,如下集合 SS 满足:

2 3
2 3 4
1 2 3 4
1 2 3

​ 其中第三个最大,大小为 44

​ 对于第二组询问,没有集合满足。

数据规模与约定

请注意常数因子对得分的影响。

测试点编号 nn QnumQnum oo 特殊性质1 特殊性质2 特殊性质3
1 0 1
2-3 10 0
4-5 1000
6 10510^5 10510^5 0
7 1
8 0 1
9 1
10 0 2
11 1
12 0 10
13 1
14 0
15 1
16
17
18 51045\cdot10^4
19-20 10510^5

对于所有数据,保证 1ai, k1091 \leqslant a_i,\ k \leqslant 10^91x, yn1 \leqslant x,\ y \leqslant naia_i[1,109][1, 10^9] 中使用以时间为种子的自带随机函数生成。

权值为 ii 的特殊性质 1:yxiy - x \leqslant i

特殊性质 2:x50x \leqslant 50

特殊性质 3:t=1t = 1

以上特殊性质均指解密后。

大样例

大样例下载