AtCoder 🌈 AWC0065C Choosing Flowers for the Flower Bed
題目的難度顏色使用 Luogu 上的分級,由簡單到困難分別為 🔴🟠🟡🟢🔵🟣⚫。
🔗 awc0065_c Choosing Flowers for the Flower Bed
Problem Statement
題目簡述
有 朵花排列在一起,每朵花都有一個價值,第 朵花的價值為 。
需要選出若干朵花放入花壇,但不能選擇相鄰的兩朵花,求能得到的最大總價值。
Constraints
約束條件
- 所有輸入值皆為整數
思路:打家劫舍
本題的核心限制是「相鄰不能同時選」,這是經典的「打家劫舍」型動態規劃問題,即 198. House Robber 以及其一系列變體,本題事實上就是這個問題的原始版本。
定義 為考慮前 朵花時的最大總價值。對於第 朵花,有兩種選擇:
- 選擇第 朵花:那麼第 朵花就不能選,因此最大總價值為 。
- 不選擇第 朵花:那麼最大總價值就為 。
轉移方程為:
複雜度分析
- 時間複雜度:
- 空間複雜度:,由於只需要前兩個狀態,可以優化到 。
Code
1 | def solve(): |
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 十六個天亮!
評論
WalineGiscus










