Luogu 🟡 P3467 [POI 2008] PLA-Postering
題目的難度顏色使用 Luogu 上的分級,由簡單到困難分別為 🔴🟠🟡🟢🔵🟣⚫。
🔗 P3467 [POI 2008] PLA-Postering
Problem Statement
題目簡述
給定一排緊貼在一起的建築,第 棟建築的寬為 、高為 。
要用若干張互不重疊的矩形海報,完整覆蓋這一整排建築的北側立面。
海報邊必須與座標軸平行,可以共邊但不能重疊,求最少需要幾張海報。
Constraints
約束條件
思路:單調棧維護「目前還能往右延伸」的高度
先把每一棟建築都獨立貼一張海報,答案一開始最多是 。
接著思考:什麼情況下,當前這棟建築可以不用新增海報?
若目前高度是 ,而左邊存在某棟高度也為 的建築,且它們之間所有建築高度都至少是 ,那麼這些建築在高度 這一層可以連成同一個矩形海報,因此這一棟不必再開新海報,且中間的建築海報數量也不會增加。
換句話說,對每個 ,我們只在乎:
- 左側最後一個沒有被更低建築截斷、因此仍可能延伸到這裡的高度。
- 如果那個高度剛好等於 ,這一棟就能和前面共用同一張海報。
使用 單調棧(Monotonic Stack) 維護即可。
複雜度分析
- 時間複雜度:
每個高度最多進棧一次、出棧一次。 - 空間複雜度:
Code
1 | def solve(): |
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 十六個天亮!
評論
WalineGiscus




![Luogu 🟡 P3467 [POI 2008] PLA-Postering](https://i.gdst.dev/cover/P3467.webp)
![Luogu 🟡 P7910 [CSP-J 2021] 插入排序](https://i.gdst.dev/cover/P7910.webp)
![Luogu 🟡 P3143 [USACO16OPEN] Diamond Collector S](https://i.gdst.dev/cover/P3143.webp)
![Luogu 🟡 P4653 [CEOI 2017] Sure Bet](https://i.gdst.dev/cover/P4653.webp)


![Luogu 🟢 P2216 [HAOI2007] 理想的正方形](https://i.gdst.dev/cover/P2216.webp)
![Luogu 🟢 P2671 [NOIP 2015 普及组] 求和](https://i.gdst.dev/cover/P2671.webp)


