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

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

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

Merge Alarm

返回题目

题解

길이가 LLL인 묶음의 표시값은 합치는 순서와 무관하게 항상 L mod ML\bmod MLmodM이다.

현재 존재하는 모든 묶음의 표시값 합을 PPP라고 하자. 경보가 없으면 PPP는 변하지 않고, 경보가 발생하면 정확히 MMM 감소한다. 처음에는 P=NP=NP=N이고 마지막에는 P=N mod MP=N\bmod MP=NmodM이므로, 모든 합치기 순서에서 경보는 정확히

q=⌊NM⌋q=\left\lfloor\frac{N}{M}\right\rfloorq=⌊MN​⌋

번 발생한다.

남은 핵심은 임의의 qqq개 경계를 경보 위치로 만들 수 있다는 사실이다. 길이 L=qM+rL=qM+rL=qM+r인 구간을 마지막으로 지역 경계 kkk에서 합치면 경보가 발생할 필요충분조건은 k mod M>rk\bmod M>rk이다. 크기가 인 목표 경보 집합 에 대해, 왼쪽에 정확히 개의 선택된 경계가 있고 의 선택 여부가 위 조건과 일치하는 분할 경계 가 항상 존재한다. 이 경계로 나누고 두 자식 구간에 귀납법을 적용하면 전체를 실현할 수 있다.

따라서 가능한 경보 집합은 크기가 qqq인 모든 경계 부분집합이다. 비용이 가장 작은 qqq개 경계를 선택하면 최적이다. 비용을 정렬한 뒤 앞의 qqq개를 더한다. 시간 복잡도는 O(Nlog⁡N)O(N\log N)O(NlogN)이다.

Solution written by GPT5

mod
M>
r
⌊L/M⌋\lfloor L/M\rfloor⌊L/M⌋
SSS
⌊k/M⌋\lfloor k/M\rfloor⌊k/M⌋
kkk
kkk
SSS