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

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

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

Largest Rectangle in a Histogram Returns

問題に戻る

解説

너비 www인 한 구간의 모든 막대 높이를 hhh 이상으로 만들 수 있는지 생각하자. 이 구간에는 BBB에서 가장 큰 www개만 쓰면 충분하다. 구간의 AAA를 오름차순, 선택한 BBB를 내림차순으로 짝지었을 때 모든 합이 hhh 이상이면 가능하고, 그렇지 않으면 어떤 짝짓기도 불가능하다.

각 AiA_iAi​에 대해 Ai+Bj≥hA_i+B_j \geq hAi​+Bj를 만족하는 의 개수를 라 하자. 길이 인 구간의 들을 오름차순으로 정렬한 값을 라 하면 가능할 필요충분조건은 모든 에 대해 인 것이다.

슬라이딩 윈도우에서 rir_iri​의 빈도를 관리한다. Dk=#{i:ri≤k}−kD_k=\#\{i:r_i\leq k\}-kDk​=#{i:라 두면 조건은 모든 이다. 값 의 최대 접두사 합을 저장하는 세그먼트 트리를 사용하면 원소 추가와 삭제, 조건 확인을 각각 에 할 수 있다.

각 너비 www에 대해 가능한 최대 높이 hhh를 이분 탐색하고 whwhwh의 최댓값을 취한다. 시간 복잡도는 O(N2log⁡Nlog⁡V)O(N^2\log N\log V)O(N2logN이다.

​
≥
h
BjB_jBj​
rir_iri​
www
rir_iri​
r(1),⋯ ,r(w)r_{(1)},\cdots,r_{(w)}r(1)​,⋯,r(w)​
kkk
r(k)≥kr_{(k)} \geq kr(k)​≥k
ri​≤
k}−
k
Dk≤0D_k\leq0Dk​≤0
cnt0,cnt1−1,⋯ ,cntw−1\mathrm{cnt}_0,\mathrm{cnt}_1-1,\cdots,\mathrm{cnt}_w-1cnt0​,cnt1​−1,⋯,cntw​−1
O(log⁡N)O(\log N)O(logN)
log
V
)