动态规划训练15 [Monkey and Banana HDU - 1069 ]
生活随笔
收集整理的這篇文章主要介紹了
动态规划训练15 [Monkey and Banana HDU - 1069 ]
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Monkey and Banana
? HDU - 1069?題意大致是將一個(gè)長(zhǎng)方體通過(guò)旋轉(zhuǎn),使得摞起來(lái)的建筑最高。但是必須滿足這么一個(gè)條件,那就是上面的長(zhǎng)方體的底面一定要完全被下一個(gè)長(zhǎng)方體的底面完全覆蓋,并且要有空位,就像樓梯那樣。
由于每一個(gè)長(zhǎng)方體可以任意使用,而實(shí)際上,最多只能被用3次,即長(zhǎng)方體的3個(gè)棱分別為高的情況下。
所以我們就可以針對(duì)每一個(gè)長(zhǎng)方體生成3個(gè)不同的體位。然后把它加入數(shù)組里面去。這樣的話數(shù)組里面的長(zhǎng)方體就只能被使用一次。
然后我們定義dp[i]代表的是以第i個(gè)結(jié)尾的塔的最大高度,那么狀態(tài)轉(zhuǎn)移就可以寫(xiě)成:
dp[i] = max(d[[i],dp[j] + h[i]),其中i,j滿足第i個(gè)長(zhǎng)方體的底面一定要被第j個(gè)廠房體的底面完全覆蓋住
總結(jié)
以上是生活随笔為你收集整理的动态规划训练15 [Monkey and Banana HDU - 1069 ]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 动态规划训练14 [Max Sum Pl
- 下一篇: 动态规划训练16 [Doing Home