题意:
给定:
两个长度为n的数列A 、B
一个有m个元素的集合K
询问Q次
每次询问[l,r],输出区间内满足|Bi-Bj|∈K 的最大Ai+Aj
数据约定:
n,Q<=100000
m <= 10
0<=A[i]<=1000000000
1<=B[i]<=n
1<=K[i]<=n
保证B[i]互不相等
思路:
考虑利用m很小的性质作为突破口:
对于每一个 B i B_i Bi,我们都可以直接枚举出一个合法的 B j B_j Bj满足:
∣ B i − B j ∣ ∈ K |Bi-Bj|∈K ∣Bi−Bj∣∈K且 A i + A j Ai+Aj Ai+Aj最大。
但此时出现了一个矛盾点:
对于每次枚举 B i B_i Bi和 B j B_j Bj以后,得到的 A i + A j A_i+A_j Ai+Aj,我们应该如何维护,放在下标为 i i i的点还是放在下标为