#B. 倍增队列

    Type: Default 1000ms 256MiB

倍增队列

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

一开始,有 nn 个数字 a1...ana_1...a_n 从左到右排成一列,而且这 nn 个数字是单调不减的,满足 aiai+1a_i\leq a_{i+1}

小明会对数字队列进行倍增,每次倍增会在数列中每一对相邻的数之间增加一个新数,新的数值为相邻的两个数的平均值向下取整。例如数列 [1,10][1,10],进行一次倍增后,变成 [1,5,10][1,5,10],再进行第二次倍增后,变成 [1,3,5,7,10][1,3,5,7,10]

小明想知道多次倍增后的数列信息,你需要回答他的 qq 次问题,每次的问题是,输入 k,xk,x,问队列经过 kk 次倍增后,队列里面有没有数字 xx

输入格式

第一行两个整数 nqn,q, 表示初始数列的长度和提问问题的组数;

接下来一行 nn 个整数,表示数列里的数字;

接下来 qq 行, 每行两个数 kxk,x,表示询问倍增 kk 次之后数列里是否有数字 xx

输出格式

输出 qq 行,按顺序每行回答一个询问。若倍增 kk 次后存在数字 xx,输出 Yes;否则,输出 No(注意大小写)。

样例

样例 1

输入:

2 2
1 10
2 3
2 4

输出:

Yes
No

对于数组 a=[1,10]a=[1,10] ,依次进行倍增:

  • 第一次倍增后,变成 [1,5,10][1,5,10]
  • 第二次倍增后,变成 [1,3,5,7,10][1,3,5,7,10]

容易发现 22 次倍增后,33 在数组中,44 不在数组中。

数据范围

测试点 qq \leq aia_i \leq kk \leq
151 \sim 5 10310^3 无特殊限制 无特殊限制
696 \sim 9 无特殊限制 10310^3
101210 \sim 12 无特殊限制 1010
132013 \sim 20 无特殊限制

对于所有的数据, 1n103,1q5×105,1ai1018,1k601 \le n \le 10^{3}, 1 \le q \le 5 \times 10^{5}, 1 \le a_i \le 10^{18}, 1 \le k \le 60,且对于 1i<jn 1 \le i \lt j \le n, 必定满足 aiaja_i \le a_j

结业考试

Not Attended
Status
Done
Rule
Ledo
Problem
4
Start at
2024-1-14 18:30
End at
2024-1-14 20:00
Duration
1.5 hour(s)
Host
Partic.
21