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

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

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

Keeping Multiple Positions

返回题目

题解

마지막에 남길 수 있는 원소의 원래 번호는 정확히 ⌊N/2⌋+1\lfloor N/2\rfloor+1⌊N/2⌋+1부터 NNN까지이다. 따라서 이 범위의 AiA_iAi​ 중 최댓값을 출력하면 된다.

수열을 읽으며 해당 범위의 최댓값을 구하면 시간 복잡도는 O(N)O(N)O(N), 추가 공간 복잡도는 O(1)O(1)O(1)이다.

증명

지금까지 고른 kkk들의 곱을 qqq라 하자. 처음에는 q=1q=1q=1이고, 남아 있는 원소의 원래 번호는 항상

q,2q,…,⌊Nq⌋qq,2q,\ldots,\left\lfloor\frac{N}{q}\right\rfloor qq,2q
,
…
,
⌊qN​⌋
q

이다. 여기서 kkk의 배수 번째만 남기면 원래 번호가 qkqkqk의 배수인 원소들만 남으므로 이 성질이 유지된다.

원소가 하나만 남으려면 ⌊N/q⌋=1\lfloor N/q\rfloor=1⌊N/q⌋=1, 즉

⌊N2⌋+1≤q≤N\left\lfloor\frac{N}{2}\right\rfloor+1\leq q\leq N⌊2N​⌋+1≤q≤N

이어야 한다. 반대로 이 범위의 번호 iii는 첫 연산에서 k=ik=ik=i를 골라 바로 혼자 남길 수 있다. N=1N=1N=1이면 연산 없이 유일한 원소가 남는다.

따라서 위 범위의 원소들만, 그리고 모두 마지막에 남길 수 있다.