#4536. Range Add Query

0

Range Add Query

Range Add Query

题目描述

你得到一个长度为 NN 的整数序列 A=(A1,A2,…,AN)A = (A_1, A_2, \ldots, A_N),以及一个正整数 KK。 对于每个 i=1,2,…,Qi = 1, 2, \ldots, Q,判断序列 AA 的一个连续子序列 (Ali,Ali+1,…,Ari)(A_{l_i}, A_{l_i+1}, \ldots, A_{r_i}) 是否是一个 良序列。 这里,一个长度为 nn 的序列 X=(X1,X2,…,Xn)X = (X_1, X_2, \ldots, X_n) 当且仅当存在若干次(可能为零次)下面的操作使得 XX 的所有元素都变为 00 时,被称为 良序列。

选择一个整数 $i$ 满足 $1 \leq i \leq n-K+1$ 和一个整数 $c$(可以为负)。对 $K$ 个元素 $X_{i}, X_{i+1}, \ldots, X_{i+K-1}$ 每个加上 $c$。
对于每个 $i = 1, 2, \ldots, Q$ 都保证 $r_i - l_i + 1 \geq K$。

输入格式

输入从标准输入按以下格式给出: NN KK A1A_1 A2A_2 …\ldots ANA_N QQ l1l_1 r1r_1 l2l_2 r2r_2 ⋮\vdots lQl_Q rQr_Q

输出格式

输出 QQ 行。 对于每个 i=1,2,…,Qi = 1, 2, \ldots, Q,第 ii 行应包含 YesYes 如果序列 (Ali,Ali+1,…,Ari)(A_{l_i}, A_{l_i+1}, \ldots, A_{r_i}) 是良序列,否则包含 NoNo。

7 3
3 -1 1 -2 2 0 5
2
1 6
2 7
Yes
No
20 4
-19 -66 -99 16 18 33 32 28 26 11 12 0 -16 4 21 21 37 17 55 -19
5
13 16
4 11
3 12
13 18
4 10
No
Yes
No
Yes
No

提示

1≤N≤2×1051 \leq N \leq 2 \times 10^5 1≤K≤min⁡{10,N}1 \leq K \leq \min\lbrace 10, N \rbrace −109≤Ai≤109-10^9 \leq A_i \leq 10^9 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5 1≤li,ri≤N1 \leq l_i, r_i \leq N ri−li+1≥Kr_i-l_i+1 \geq K 输入中的所有数值均为整数。序列 $X \coloneqq (A_1, A_2, A_3, A_4, A_5, A_6) = (3, -1, 1, -2, 2, 0)$ 是良序列。 事实上,你可以按如下操作将所有元素变为 00。

首先,对 i=2,c=4i = 2, c = 4 做操作,使得 X=(3,3,5,2,2,0)X = (3, 3, 5, 2, 2, 0)。 接着,对 i=3,c=−2i = 3, c = -2 做操作,使得 X=(3,3,3,0,0,0)X = (3, 3, 3, 0, 0, 0)。 最后,对 i=1,c=−3i = 1, c = -3 做操作,使得 X=(0,0,0,0,0,0)X = (0, 0, 0, 0, 0, 0)。

因此,第一行应为 YesYes。 另一方面,对于序列 $(A_2, A_3, A_4, A_5, A_6, A_7) = (-1, 1, -2, 2, 0, 5)$,不存在将所有元素变为 00 的方法,所以它不是良序列。 因此,第二行应为 NoNo.

标签: AtCoder|abc288D

来源

AtCoder|abc288D