DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

関数で遊ぼう

問題に戻る

解説

任意の正の整数 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)

である。したがって nin_ini​ を M−1=109+6M-1=10^9+6M−1=109+6 で割った余りを とすると、

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
eie_i
ei​
i
​
(modM)
1
​
,
d2​
,
⋯
,
dk​
e=0e=0e=0
1
)
1
Q
​
Li​
+
QlogM)
O(1)O(1)O(1)
201201201