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

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

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

The Small Castle Built by a Dwarf

返回题目

题解

iii번째 성까지 처리했고 마지막 높이가 hhh일 때의 최소 비용을 Fi(h)F_i(h)Fi​(h)라 하자. 전이는

Fi(h)=costi(h)+min⁡(Fi−1(h−1),Fi−1(h+1))F_i(h)=\mathrm{cost}_i(h)+\min(F_{i-1}(h-1),F_{i-1}(h+1))Fi​(h)=costi​(h)+min(Fi−1​(h

이다.

높이의 홀짝을 나누고 h=2x+ph=2x+ph=2x+p로 두면 각 홀짝에서 FiF_iFi​는 이산 볼록함수이다. 인접한 두 상태 중 최솟값을 취하는 연산은 볼록함수에 대한 길이 111 구간 최소화로 바뀐다. 이는 slope trick의 왼쪽과 오른쪽 지연값을 각각 옮겨 처리할 수 있다.

높이 변경 비용도 볼록함수이다. Hi−pH_i-pHi​−p가 짝수이면 같은 꼭짓점을 갖는 두 비대칭 V자 함수를 더하고, 홀수이면 서로 이웃한 두 꼭짓점에 하나씩 더하면 h=2x+ph=2x+ph=2x+p에서의 비용과 정확히 일치한다. 양의 높이 조건은 가능한 모든 실제 비용 기울기의 합보다 큰 가중치로 xx의 하한을 강제한다.

가중치가 있는 두 우선순위 큐로 slope trick을 구현하면 각 꼭짓점이 로그 시간에 처리된다. 전체 시간 복잡도는 O(Nlog⁡N)O(N\log N)O(NlogN)이다. 비용 계산에는 128비트 정수를 사용한다.

−
1),Fi−1​(h+
1))
x