DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

和函数一起玩

返回题目

题解

首先证明,对任意正整数 nnn 都有 f(n)=2nf(n)=2^nf(n)=2n。因为 f(1)=2f(1)=2f(1)=2,且由题目条件可得

f(n+1)=f(n)f(1)=2f(n)f(n+1)=f(n)f(1)=2f(n)f(n+1)=f(n)f(1)=2f(n)

所以根据数学归纳法,结论成立。

每个询问要求计算 2ni mod M2^{n_i}\bmod M2ni​modM,其中 M=109+7M=10^9+7M=。由于 是质数并且与 互质,费马小定理表明

2M−1≡1(modM)2^{M-1}\equiv1\pmod M2M−1≡1(modM)

因此,设 eie_iei​ 为 nin_ini​ 对 M−1=109+6M-1=10^9+6M−1 取模的结果,则

2ni≡2ei(modM)2^{n_i}\equiv2^{e_i}\pmod M2ni​≡2e

由于 nin_ini​ 可达到 1020010^{200}10200,应将其作为十进制字符串读入。设从左到右的数位为 d1,d2,⋯ ,dkd_1,d_2,\cdots,d_kd。令初值 ,依次更新

e←(10e+dj) mod (M−1)e\leftarrow(10e+d_j)\bmod(M-1)e←(10e+dj​)mod(M−

最后通过二进制快速幂计算 2e mod M2^e\bmod M2emodM。

设第 iii 个询问的十进制位数为 LiL_iLi​,总时间复杂度为 O(∑i=1QLi+Qlog⁡M)O(\sum_{i=1}^Q L_i+Q\log M)O(∑i=。除输入字符串外,额外空间复杂度为 。输入数字最长有 位。

Solution written by GPT6

1
09
+
7
MMM
222
=
109+
6
i
​
(modM)
1
​
,
d2​
,
⋯
,
dk​
e=0e=0e=0
1
)
1
Q
​
Li​
+
QlogM)
O(1)O(1)O(1)
201201201