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

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

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

MAXOR

問題に戻る

解説

2k≤N<2k+12^k\leq N<2^{k+1}2k≤N<2k+1을 만족하는 정수 kkk를 생각하자.

1,2,4,…,2k1,2,4,\ldots,2^k1,2,4,…,2k는 모두 111 이상 NNN 이하이므로 원하는 대로 고를 수 있다. 이 수들은 각각 서로 다른 하나의 비트만 가지고 있다. 따라서 이들을 적절히 골라 하위 k+1k+1개 비트를 모두 로 만든

2k+1−12^{k+1}-12k+1−1

을 얻을 수 있다.

한편 111부터 NNN까지의 모든 수는 2k+12^{k+1}2k+1보다 작다. 그러므로 어떤 수들을 XOR하더라도 k+1k+1k+1번째 이상의 비트가 11이 될 수 없고, 결과는 보다 클 수 없다.

따라서 답은 NNN보다 큰 가장 작은 222의 거듭제곱에서 111을 뺀 값이다. 시간 복잡도는 테스트 케이스마다 O(log⁡N)O(\log N)O(logN)이고, 추가 공간 복잡도는 O(1)O(1)O(1)이다.

Solution written by GPT6

k+
1
111
1
2k+1−12^{k+1}-12k+1−1