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

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

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

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