CF2159E Super-Short-Polynomial-San

题目描述

这个问题在一些国家可能非常有名,但如果没有人出这样的问题,其他国家的人又如何了解它们呢? —— [XXI Open Cup, Grand Prix of Tokyo](https://qoj.ac/problem/3091) 你将获得三个整数 $a,\ b,\ c$。 定义 $F(n)$ 为次数为 $2n$ 的如下多项式: $$ F(n) = (a x^2 + b x + c)^n $$ 你需要处理 $q$ 次如下类型的询问: - $n\;k$ :请你计算 $\displaystyle \sum_{i=0}^{k} [x^i] F(n)$ 的值,结果对 $10^9+7$ 取模 $^{\ast}$。 但如果题目就这样结束,可能对你来说太简单了。于是有了一个小小的变数$^\dagger$:你需要在线地处理这些询问。 $^{\ast}$ 其中 $[x^a]F(n)$ 表示 $F(n)$ 的 $x^a$ 项的系数。 $^\dagger$ 希望加上这个变数后对你来说不会太难。连小孩子都知道怎么做,只不过你要再把这个方法快上 $8\,000\,000$ 倍。

输入格式

第一行包含三个整数 $a$、$b$、$c$,满足 $1 \le a, b, c \le 10^9+6$。 第二行包含一个整数 $q$,表示询问次数,$1 \le q \le 3 \times 10^5$。 接下来 $q$ 行,每行两个整数 $n_i'$ 和 $k_i'$,表示第 $i$ 次询问的加密参数。 你需要按以下方式解密参数: - 令第 $i$ 次询问(答案对 $10^9+7$ 取模)的答案为 $ans_i$,其中 $ans_0=0$。 - 第 $i$ 次询问的 $n$ 和 $k$ 为 $n_i = n_i' \oplus ans_{i-1}$,$k_i = k_i' \oplus ans_{i-1}$,其中 $0 \le n_i \le 3\times 10^5$,$0 \le k_i \le 2n_i$。 注意全部 $n_i$ 之和与 $k_i$ 之和均无上界。

输出格式

对于每个询问,输出一个整数,表示答案对 $10^9+7$ 取模的结果,每个答案占一行。

说明/提示

解密后的样例输入如下: ``` 3 2 1 11 0 0 1 0 1 1 1 2 2 0 2 1 2 2 2 3 2 4 31415 9265 200000 69420 ``` 在 OEIS 上,该多项式 $F(n)$ 可参见 [A084608](https://oeis.org/A084608)。不过不用去点那个链接,没什么特别有用的信息。相信我。 由 ChatGPT 5 翻译