AT_abc288_d [ABC288D] Range Add Query

题目描述

给定一个长度为 $N$ 的整数序列 $A = (A_1, A_2, \ldots, A_N)$ 和一个正整数 $K$。 对于每个 $i = 1, 2, \ldots, Q$,请判断 $A$ 的连续子序列 $(A_{l_i}, A_{l_i+1}, \ldots, A_{r_i})$ 是否为**好数列**。 这里,长度为 $n$ 的数列 $X = (X_1, X_2, \ldots, X_n)$,如果可以通过任意次数(可以为 $0$ 次)执行如下操作,使得 $X$ 的所有元素都变为 $0$,那么且仅当如此,称 $X$ 为**好数列**。 > 选择满足 $1 \leq i \leq n-K+1$ 的整数 $i$ 和一个整数 $c$($c$ 可以为负数),将 $X_{i}, X_{i+1}, \ldots, X_{i+K-1}$ 这 $K$ 个元素各自加上 $c$。 另外,保证对于所有 $i = 1, 2, \ldots, Q$,都有 $r_i - l_i + 1 \geq K$。

输入格式

输入按以下格式从标准输入给出。 > $N$ $K$ $A_1$ $A_2$ $\ldots$ $A_N$ $Q$ $l_1$ $r_1$ $l_2$ $r_2$ $\vdots$ $l_Q$ $r_Q$

输出格式

输出 $Q$ 行。对于每个 $i = 1, 2, \ldots, Q$,如果数列 $(A_{l_i}, A_{l_i+1}, \ldots, A_{r_i})$ 是好数列,则第 $i$ 行输出 `Yes`,否则输出 `No`。

说明/提示

### 限制条件 - $1 \leq N \leq 2 \times 10^5$ - $1 \leq K \leq \min\{10, N\}$ - $-10^9 \leq A_i \leq 10^9$ - $1 \leq Q \leq 2 \times 10^5$ - $1 \leq l_i, r_i \leq N$ - $r_i - l_i + 1 \geq K$ - 输入均为整数 ### 样例解释 1 数列 $X \coloneqq (A_1, A_2, A_3, A_4, A_5, A_6) = (3, -1, 1, -2, 2, 0)$ 是好数列。实际上,可以按如下步骤操作,使所有元素变为 $0$: - 首先,令 $i = 2, c = 4$,操作后 $X = (3, 3, 5, 2, 2, 0)$。 - 然后,令 $i = 3, c = -2$,操作后 $X = (3, 3, 3, 0, 0, 0)$。 - 最后,令 $i = 1, c = -3$,操作后 $X = (0, 0, 0, 0, 0, 0)$。 因此,第 $1$ 行输出 `Yes`。 另一方面,数列 $(A_2, A_3, A_4, A_5, A_6, A_7) = (-1, 1, -2, 2, 0, 5)$,无论如何操作,都无法使所有元素都变为 $0$,因此不是好数列。 因此,第 $2$ 行输出 `No`。 由 ChatGPT 4.1 翻译