區間DP 戳西瓜(c )

2021-10-09 17:22:01 字數 1337 閱讀 4390

前言

今天中午筆者立下了乙個flag帖,晚自習的筆者來解決flag了!~

參考題解

題目描述

有 n 個西瓜,編號為0 到 n-1,每個西瓜上都標有乙個數字,這些數字存在陣列 nums 中。

現在要求你戳破所有的西瓜。每當你戳破乙個西瓜 i 時,你可以獲得 nums[left] *nums[i] *nums[right] 個硬幣。 這裡的 left 和 right 代表和 i 相鄰的兩個西瓜的序號。注意當你戳破了西瓜 i 後,西瓜 left 和西瓜 right 就變成了相鄰的西瓜。

求所能獲得硬幣的最大數量。

輸入格式

共兩行。

第一行:乙個正整數n,代表西瓜個數。

第二行:共n個數字,每個數字表示西瓜上標的數字。

輸出格式

一行,乙個整數,獲得硬幣的最大數量。

樣例樣例輸入

43 1 5 8

樣例輸出

167解釋:

nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] -->

coins = 315 + 358 + 138 + 181 = 167

資料範圍與提示

你可以假設 nums[-1] = nums[n] = 1,但注意它們不是真實存在的西瓜,所以並不能被戳破。

0 ≤ n ≤ 500, 0 ≤ nums[i] ≤ 100

思路設dp[i][j]為i~j之間最大的和,(i, j)

因為這與前一和後一都有關

列舉k點(k為最後戳爆的點)那麼i,j就可以相鄰

如下圖那麼我們就需要知道dp[i][k], 和dp[k][j](再次重申開區間)

}如果覺得有幫助的話,記得留下你的贊哦~

題解 戳西瓜

有 n 個西瓜,編號為 0 00 到 n 1 n 1n 1 每個西瓜上都標有乙個數字,這些數字存在陣列 num snums nums 中。現在要求你戳破所有的西瓜。每當你戳破乙個西瓜i ii時,你可以獲得 num s le ft nums i nums rig ht nums left nums i...

To Heart 題解 戳西瓜

請不要吝嗇你的點讚!有 n 個西瓜,編號為0 到 n 1,每個西瓜上都標有乙個數字,這些數字存在陣列 nums 中。現在要求你戳破所有的西瓜。每當你戳破乙個西瓜 i 時,你可以獲得 nums left nums i nums right 個硬幣。這裡的 left 和 right 代表和 i 相鄰的兩...

leetcode 312 戳氣球(區間dp)

312.戳氣球 難度困難297 有n個氣球,編號為0到n 1,每個氣球上都標有乙個數字,這些數字存在陣列nums中。現在要求你戳破所有的氣球。每當你戳破乙個氣球i時,你可以獲得nums left nums i nums right 個硬幣。這裡的left和right代表和i相鄰的兩個氣球的序號。注意...