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

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

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

Easy Sequence Problem

問題に戻る

解説

현재 (AN,AN+1)=(P,Q)(A_N,A_{N+1})=(P,Q)(AN​,AN+1​)=(P,Q)라고 하자. P<QP<QP<Q이면 NNN의 마지막 이진 비트는 000이고 이전 쌍은 (P,Q−P)(P,Q-P)(P,Q−P)이다. P>QP>QP>Q이면 마지막 비트는 111이고 이전 쌍은 (P−Q,Q)(P-Q,Q)(P−Q,Q)이다.

한 번씩 빼면 값이 매우 큰 경우 느리다. P<QP<QP<Q일 때 t=⌊Q−1P⌋t=\left\lfloor\frac{Q-1}{P}\right\rfloort=⌊PQ−1​만큼 한 번에 빼면 뒤의 비트 개를 제거한 것과 같다. 도 대칭적으로 처리한다. 서로소이므로 과정은 에서 끝난다.

제거한 비트 구간을 역순으로 붙인다. 현재 값이 XXX일 때 000을 ttt개 붙이면 X2tX2^tX2t, 111을 tt개 붙이면 이 된다. 모든 연산은 으로 나눈 나머지로 계산한다. 유클리드 알고리즘과 같은 횟수의 단계만 필요하므로 시간 복잡도는 이다.

⌋
000
ttt
P>QP>QP>Q
(1,1)(1,1)(1,1)
t
X2t+(2t−1)X2^t+(2^t-1)X2t+(2t−1)
998 244 353998\,244\,353998244353
O(log⁡max⁡(P,Q))O(\log \max(P,Q))O(logmax(P,Q))
Solution written by GPT5.6