A16695 | Super-Short-Polynomial-San
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
这个问题在一些国家可能非常有名,但如果没有人出这样的问题,其他国家的人又如何了解它们呢?
—— [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$ 倍。
—— [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$ 之和均无上界。
第二行包含一个整数 $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$ 取模的结果,每个答案占一行。
输入输出样例
输入 #1
3 2 1 11 0 0 0 1 0 0 2 1 4 6 3 0 7 7 13 12 25 31 31379 9237 396176013 396306657
输出 #1
1 1 3 6 1 5 15 27 36 396240845 819003547
解密后的样例输入如下:
```
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)。不过不用去点那个链接,没什么特别有用的信息。相信我。
```
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)。不过不用去点那个链接,没什么特别有用的信息。相信我。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?