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

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

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

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