#P12513. 「OOI 2024 Day 2」伯伦卡与 Pether

「OOI 2024 Day 2」伯伦卡与 Pether

题目描述

有一天,伯利兰国的公主伯伦卡决定给她的熟人ReLu一个惊喜。知道ReLu和她一样对加密货币感兴趣,伯伦卡决定创建自己的区块链加密货币 Pether。

在参加了一系列由网络安全个人成长专家教练提供的课程和培训后,伯伦卡决定 Pether 必须得到最佳保护。因此,由于极其复杂和混乱的限制,并非所有用户都可以相互交换 Pether。

Pether 区块链货币的系统确实复杂而混乱。所有用户编号为从 11nn 的整数。每个用户被分配一个唯一的标识符 aia_{i}。此外,货币还固定了一个参数 dd——安全参数。

用户 ii 只能直接将货币转账给用户 jj,如果满足 i<ji < jai<aja_i < a_j。但这还不够!直接转账是通过一系列中间用户进行一系列交易完成的。在每次交易过程中,每个后续中间用户(包括最终用户 jj)的编号必须递增,但增量不得超过 dd。此外,除 iijj 外的所有中间用户的标识符必须严格小于 aia_i

更正式地说,用户 ii 可以直接将加密货币转账给用户 jj,如果满足以下条件:

  1. i<ji < j
  2. ai<aja_{i} < a_{j}
  3. 存在一个长度为 kk 的中间用户序列 xx,使得:
    • i=x1<x2<<xk1<xk=ji = x_1 < x_2 < \ldots < x_{k-1} < x_{k} = j
    • 对于所有 1tk11 \le t \le k - 1xt+1xtdx_{t + 1} - x_{t} \le d
    • 对于所有 2tk12 \le t \le k - 1axt<aia_{x_t} < a_{i}

伯伦卡请你——她的程序员熟人——帮助解析这个系统,并为一些用户对确定他们如何相互传递 Pether。

你需要回答 qq 个查询。在每个查询中,你需要确定是否存在一个直接转账序列(可能通过中间用户),使得从用户 uiu_i 到用户 viv_i 可以传递 Pether。在某些查询中,还需要最小化从 uiu_iviv_i 传递货币所需的直接转账次数。注意,在每次直接转账中不需要最小化交易次数。

输入格式

第一行包含三个整数 n,d,gn, d, g (1n,d300000,0g12)(1 \leq n, d \leq 300000, 0 \leq g \leq 12),分别表示用户数量、安全参数和子任务编号。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1ain)(1 \leq a_{i} \leq n),表示用户的标识符。保证所有 aia_i 互不相同。

第三行包含一个整数 qq (1q300000)(1 \leq q \leq 300000),表示查询数量。

接下来的 qq 行,每行包含三个整数 ti,ui,vit_{i}, u_{i}, v_{i} (ti{1,2},1ui<vin)(t_{i} \in \{1, 2\}, 1 \leq u_{i} < v_{i} \leq n),其中 uiu_i 是需要发送货币的用户,viv_i 是需要接收货币的用户。如果 ti=1t_i = 1,则需要确定是否可以传递货币;如果 ti=2t_i = 2,则需要额外最小化直接转账次数。

输出格式

输出 qq 行,第 ii 行是第 ii 个查询的答案。

如果无法从用户 uiu_i 传递货币到用户 viv_i,则对第 ii 个查询输出 00。否则,如果 ti=1t_i = 1,输出 11;如果 ti=2t_i = 2,输出从 uiu_iviv_i 传递 Pether 所需的最小直接转账次数。

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

1
0
1
3
4
1

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

2
2
3
2
2
1

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

2
1
1
4
2
3
3
0
2
4

数据范围与提示

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制 子任务依赖 备注
11 1010 n100n \leq 100q100q \leq 100
22 77 n1000n \leq 1000 11
33 1414 an=na_{n} = nvi=nv_{i} = n
44 1010 q=1q = 1vi=nv_i = n
55 99 vi=nv_i = n 3,43, 4
66 77 ti=2t_i=2 答案不超过 1010
77 77 1,61, 6 答案不超过 150150
88 1313 ti=1t_i = 1
99 1010 n50000n \leq 50000q50000q \leq 50000 11
1010 44 n100000n \leq 100000q100000q \leq 100000 1,91, 9
1111 44 n200000n \leq 200000q200000q \leq 200000 1,9,101, 9, 10
1212 55 0110 \sim 11