AT_past19_n 有限べき級数

题目描述

给定一个长度为 $N$ 的非负整数序列 $A=(A_1,A_2,\ldots,A_N)$,以及一个实数 $x$,满足 $0 < x \leq 1$。 对于任意整数对 $(l, r)\ (1 \leq l \leq r \leq N)$,定义 $f(l, r)$ 如下: \[ \begin{aligned} f(l, r) &= A_l + A_{l+1}x + A_{l+2}x^2 + \cdots + A_r x^{r-l} \\ &= \sum_{i=0}^{r-l} A_{i+l} x^i \end{aligned} \] 现在有 $Q$ 次询问。对于第 $i$ 次询问 $(1 \leq i \leq Q)$,给定整数对 $(l_i, r_i)\ (1 \leq l_i \leq r_i \leq N)$,请计算 $f(l_i, r_i)$。

输入格式

输入按如下格式从标准输入读入: > $N$ $A_1$ $A_2$ $\ldots$ $A_N$ $x$ $Q$ $l_1$ $r_1$ $l_2$ $r_2$ $\vdots$ $l_Q$ $r_Q$

输出格式

输出共 $Q$ 行。第 $i$ 行 $(1 \leq i \leq Q)$ 输出对第 $i$ 次询问 $(l_i, r_i)$ 计算得到的 $f(l_i, r_i)$。 只要你的输出的相对或绝对误差不超过 $10^{-6}$,就会被认为是正确答案。

说明/提示

### 样例解释 1 对于每个询问,答案如下。 - $f(1,3) = A_1 \times 0.25^0 + A_2 \times 0.25^1 + A_3 \times 0.25^2 = 3 + 0.25 + 0.25 = 3.5$。 - $f(3,6) = A_3 \times 0.25^0 + A_4 \times 0.25^1 + A_5 \times 0.25^2 + A_6 \times 0.25^3 = 4 + 0.25 + 0.3125 + 0.140625 = 4.703125$。 - $f(1,7) = A_1 \times 0.25^0 + A_2 \times 0.25^1 + A_3 \times 0.25^2 + A_4 \times 0.25^3 + A_5 \times 0.25^4 + A_6 \times 0.25^5 + A_7 \times 0.25^6 = 3 + 0.25 + 0.25 + 0.015625 + 0.01953125 + 0.0087890625 + 0.00048828125 = 3.54443359375$。 - $f(2,2) = A_2 \times 0.25^0 = 1$。 由于只要相对或绝对误差不超过 $10^{-6}$ 也是正确答案,所以如 ``` 3.5 4.703125 3.54443359375 0.999999 ``` 以及 ``` 3.4999965 4.703129703125 3.54443004931640625 1.000001 ``` 等均会被认为是正确答案。 ### 数据范围 - $1\leq N\leq 2\times 10^5$ - $0\leq A_i\leq 10^9\ (1\leq i\leq N)$ - $0 < x \leq 1$ - $1\leq Q\leq 2\times 10^5$ - $1\leq l_i\leq r_i\leq N\ (1\leq i\leq Q)$ - $N, A_i, Q, l_i$ 和 $r_i$ 均为整数 - $x$ 为实数,精度最多 $15$ 位小数 由 ChatGPT 5 翻译